java - 从外部存储读取图像文件并放置在 ImageView 中

标签 java android bitmap android-imageview android-external-storage

在这种情况下,我需要使用用户外部存储目录中的图像填充 ImageView ;我一直在使用位图工厂解码文件,然后相应地设置 ImageView 位图,但我一直遇到空指针异常。

String path = Environment.getExternalStorageDirectory()+ "/Pictures/test.jpg";
File imgFile = new File(path);

    if(imgFile.exists()){
        Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
        ImageView imgView = (ImageView)findViewById(R.id.imageView2);
        imgView.setImageBitmap(myBitmap);
    } else {
        Log.d("Ciaren", "File doesn't exist");
    }

我直接在 OnCreate 中运行它, ImageView 应该是全屏的,但我终究无法弄清楚是什么抛出了一个空对象,因为我已经逐步完成并且一切看起来都很好,当 setImageBitmap(); 时抛出空指针;方法被调用。

最佳答案

错误是在imgView.setImageBitmap(myBitmap)中抛出的;因此 imageView 为空。结果找不到您的 imageView。确保资源 ID R.id.imageView2 正确。有时 eclipse 会出现问题,Project > Clean 也可以解决这个问题。

关于java - 从外部存储读取图像文件并放置在 ImageView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20033598/

相关文章:

android - 在 Android cordova 应用程序中从 javascript 更改 KeepScreenOn

winapi - HBITMAP 到 BITMAP 的转换

java - Jboss 神秘关闭

java - 如何使用 Sun/Oracle CodeModel 库进行类型转换?

java - 如何将用户输入传递给java中的构造函数

c# - 将 .bmp 文件解码为二进制文件

c++ - 获取顶部和底部白色像素的坐标以绘制一条线

java - 加载屏幕中的非连续渲染无法正常工作 - 多线程 LIBGDX

android - 在 android 中创建像 candy crush 一样的动画

java - 需要帮助,我是 Android Studio 的初学者