imageView.setImageBitmap图像空白(Android 4.4)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了imageView.setImageBitmap图像空白(Android 4.4)相关的知识,希望对你有一定的参考价值。

我有一个想要从jpg文件(照片)填充的ImageView。我首先检查文件是否存在,然后使用setImageBitmap加载ImageView,但ImageView仍为空白。我已经转储了logcat,并没有引发异常。我还调试了代码来检查图像文件是否存在,它确实存在。我正在测试运行android 4.4.2的Galaxy S4。有问题的图像文件位于外部SD卡上,因此我在AndroidManifest中设置了android.permission.READ_EXTERNAL_STORAGE权限。

我在StackOverflow和其他地方都阅读过这类问题的大量其他引用。其中一个建议在setImageBitmap之后添加imageView.invalidate(),我尝试过(见下文),但它没有帮助。有没有人有任何其他想法?

在下面的代码中,调试器显示具有此值的imageLocation字符串:/storage/extSdCard/DCIM/Camera/12345.jpg。

    File imageFile = new File(imageLocation);
    if (imageFile.exists()) {   
        Bitmap bm = BitmapFactory.decodeFile(imageLocation);
        imageView.setImageBitmap(bm);
        imageView.invalidate();
    }
答案

如果你的代码是在onCreate()方法的Activity中它将无法正常工作。

只需将该代码放入任何其他事件,如Button的Click事件,图像就会出现:

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click Me"
        android:onClick="ShowImage"/>

只需在您的Activity中编写一个方法,如下所示:

public void ShowImage(View view)
{
     File imageFile = new File(imageLocation);
     if (imageFile.exists())
     {
        Bitmap bm = BitmapFactory.decodeFile(imageLocation);
        imageView.setImageBitmap(bm);
     }
}

它在我编码时有效。 我希望它对你也有用。 :-)

以上是关于imageView.setImageBitmap图像空白(Android 4.4)的主要内容,如果未能解决你的问题,请参考以下文章

Android ImageView setImageBitmap 不显示图片

Android获取数据库图片uri路径并用imageView显示

为啥我使用postScale缩放图片之后,再使用imageView.layout()这个方法移动图片就没有效果了

Android 照相 滤镜

android里ImageButton 的android:src属性对应的函数是啥

面向对象UML类图用例图顺序图活动图状态图通信图构件图部署图