如何将图片从私人文件加载到布局(Android)?

时间:2012-08-03 15:35:56

标签: android file layout

我在/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);

我无法弄清楚它是如何起作用的,有人可以解释一下为什么吗?那么我想做什么?我需要内容提供商吗?有更简单的方法吗?

2 个答案:

答案 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();