我在/data/data/my.package.name/files/mypicture.png
中保存了一张照片,我希望将其加载到布局中。
我试过这个,但它不起作用。
File filePath = getFileStreamPath("pictureIWouldLikeToLoad.png");
ImageView img = new ImageView(getApplicationContext());
img.setImageDrawable(Drawable.createFromPath(filePath.toString()));
ViewGroup picturesLayout = (ViewGroup) findViewById(R.id.layout_pictures_area);
picturesLayout.addView(imgView);
我无法弄清楚它是如何起作用的,有人可以解释一下为什么吗?那么我想做什么?我需要内容提供商吗?有更简单的方法吗?
答案 0 :(得分:1)
您应该在XML中为要更改的图像定义ID
<ImageView
android:id="@+id/awesome_image"
.
.
.
/>
然后你应该将Image文件转换为Bitmap对象
File file = new File("/data/data/my.package.name/files/mypicture.png");
Bitmap bmp = BitmapFactory.decodeFile(file);
最后你得到了imageView对象并设置了它的位图
ImageView imageView = (ImageView) findViewById(R.id.awesome_image);
imageView.setImageBitmap(bmp);
答案 1 :(得分:1)
所以我成功了。也许它可以改进,但这里确实有效:
FileInputStream inputStream = openFileInput("my_image.png");
BufferedInputStream bufferedInput = new BufferedInputStream(inputStream);
Bitmap bmp = BitmapFactory.decodeStream(bufferedInput);
ImageView imgView = (ImageView) findViewById(R.id.my_imageview);
imgView.setImageBitmap(bmp);
bufferedInput.close();
inputStream.close();