我正在尝试在imageview中显示图片。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView = (ImageView)findViewById(R.id.imageView1);
try {
File imgFile = new File("C:\\photos\\a.jpg");
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
if (myBitmap == null) {
Log.e("BITMAP", "myBitmap is NULL");
}
imageView.setImageBitmap(myBitmap);
}catch (Exception e) {
e.printStackTrace();
}
}
我可以看到错误消息“myBitmap is NULL”。 有什么我需要做的,以确保路径被识别。
谢谢!
答案 0 :(得分:1)
路径"C:\\photos\\a.jpg"
是指Windows系统中的路径,这是无效的。 Android对Windows一无所知。
您需要将文件放在资源目录或资产目录中,并相应地提供路径。
答案 1 :(得分:1)
试试这个:
将图像放在assets
文件夹中,然后:
private Bitmap getBitmapFromAsset(String strName)
{
AssetManager assetManager = getAssets();
InputStream istr = null;
try {
istr = assetManager.open(strName);
} catch (IOException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(istr);
return bitmap;
}
然后将imageView
中的图像位图设置为:
imageView.setImageBitmap(getBitmapFromAsset("fileName"));
或者如果图像文件在SD card
上,请尝试:
File f = new File("/mnt/sdcard/photo.jpg");
Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath());
imageView.setImageBitmap(bmp);
希望这会对你有所帮助。