0

我有一些图片路径存储在数据存储中,我正在尝试将它们转换为可绘制对象并在我的图像视图中显示,由于某种原因我得到了一个空指针异常。有人可以帮帮我吗?谢谢

String pathName = selectedPlayer.getPicture(); 
Toast.makeText(this, pathName, Toast.LENGTH_SHORT).show();
Drawable d = Drawable.createFromPath(pathName);
imageView.setImageDrawable(d);
4

2 回答 2

2

您必须检查文件名不为空

然后首先检查文件是否存在

if(pathName!=null && pathName!="") <--CHECK FILENAME IS NOT NULL
{
    File f = new File(pathName);
    if(f.exists())  <-- CHECK FILE EXISTS OR NOT
    {
        Drawable d = Drawable.createFromPath(pathName);
        imageView.setImageDrawable(d);

    }
}

编辑: 你必须先初始化你的 imageview

imageView=(ImageView)findViewById(R.id.yourimageviewid);
于 2012-09-07T08:55:25.190 回答
1

imageView它不应该为空。

之后试试这个:

bm = null;
try {
    bm = BitmapFactory.decodeFile(imageView);
} catch (OutOfMemoryError e) {
    e.printStackTrace();
}
imageView.setImageBitmap(bm);
于 2012-09-07T08:57:49.243 回答