0

我保存了一张图片/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);

我不知道它是如何不起作用的,有人能解释一下为什么吗?那么我想要做什么呢?我需要内容提供者吗?有没有更简单的方法来做到这一点?

4

2 回答 2

1

您应该在 XML 中为要更改的图像定义一个 ID

<ImageView
android:id="@+id/awesome_image"
.
.
.
/>

那么您应该将图像文件转换为位图对象

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);
于 2012-08-03T15:46:31.923 回答
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();
于 2012-08-06T08:33:26.843 回答