以编程方式更改android中ImageView的背景/来源

时间:2014-11-29 12:43:42

标签: android android-imageview android-file android-bitmap

我正在创建一个Android应用,我希望全屏显示图像。图像存储在Android手机的内部存储器中,并且要显示的图像每次都可以变化。在该活动的布局XML文件中,我添加了一个图像视图标记,如下所示:

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/android" />

我应该为android:src输入什么?任何帮助&amp;建议将不胜感激。

3 个答案:

答案 0 :(得分:3)

删除行

android:src="@drawable/android"

来自XML布局。由于图像可能每次都有所不同,因此您需要使用

File file = new  File("/sdcard/Images/test_image.jpg");

if(imgFile.exists()){

    Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());

    ImageView image = (ImageView) findViewById(R.id.imageview1);

    image.setImageBitmap(bitmap);

}

答案 1 :(得分:2)

尝试以下代码,从存储在SD卡中的文件中设置位图图像。

File imgFile = new  File("/sdcard/Images/test_image.jpg");

if(imgFile.exists()){

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);

    myImage.setImageBitmap(myBitmap);

}

这在运行时起作用

答案 2 :(得分:1)

您可以在运行时执行此操作,试试这个:

String pathName = "/sdcard/abc.png";
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeFile(pathName);
BitmapDrawable bd = new BitmapDrawable(res, bitmap);
ImageView view = (ImageView) findViewById(R.id.container);
view.setBackgroundDrawable(bd);