更改源时ImageView不更改图像(已使用invalidate)

时间:2013-07-31 18:14:26

标签: android bitmap imageview

我有一个带有xml设置图像的imageView。但是,当我尝试更改图像时,ImageView从不显示第二个图像。相反,它显示一个空白屏幕。我已尝试使用和不使用invalidate()的代码,并且没有任何更改。

ImageView image;
String imgPath=Environment.getExternalStorageDirectory()+"/Music/Evanescence - Discography - 1998-2011 (320 kbps)/Album's/2000 Origin (Limited Edition) (320 kbps)/Scans covers/06.jpg";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    image=(ImageView)findViewById(R.id.imageView1);

    image.setImageBitmap(BitmapFactory.decodeFile(imgPath));
    if(!new File(imgPath).exists())
        Log.i("aaa","File doesnt exist");
    //select image from gallery
    //Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    //photoPickerIntent.setType("image/*");
    //startActivityForResult(photoPickerIntent, SELECT_PHOTO); 
    Log.i("aaa","DONE. img path: "+imgPath);
}

2 个答案:

答案 0 :(得分:0)

你在xml中设置android:background="someDrawable"吗?检查并删除或将其设置为android:src="drawable"

如果setImageBitmap无效,请尝试使用setBackground(drawable)

我知道这不是一个完美的答案,只是一个工作者......我们会找到一个明确的答案。

答案 1 :(得分:0)

我认为图像太大了。

在某些设备上,不是抛出java.lang.OutofMemoryError,而是返回空位图。

尝试使用较小的图片运行代码。如果可行,您必须在Android中学习how to display bitmaps properly

(不管怎样,你必须)