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()这个方法移动图片就没有效果了