Android加载手机磁盘上的资源---decodeFile方法的使用

一般在写Android程序时,通常会将图片资源放在/res/drawable/文件夹下,读取时,通过R.drawable.imageId即可读取图片内容,但用户在使用时,一般会想要读取存放在存储卡上的资源,这时候上面的方法将不起作用,这时候,就需要使用Bitmap和BitmapFactory对象,来加载手机磁盘上的资源了。

首先在布局文件里放一个ImageView,用户放置图片,图片存放的路径为/data/data/demo.jpg,在程序中首先获取ImageView,代码如下:

ImageView myImage = (ImageView)findViewById(R.id.imageView1);

然后检查文件是否存在,代码如下:

String fileName = "/data/data/demo.jpg";

File file = new File(fileName);

if(file.exists()){

  Bitmap bm = BitmapFactory.decodeFile(fileName);

  myImage.setImageBitmap(bm);

}else{

  textView.setText("文件不存在");

}

BitmapFactory可以将图片转换成Bitmap对象,通过decodeFile()方法可以将手机系统里的图片文件转换成Bitmap对象,同时还提供了其他的方法,用来转换不同位置的文件,如decodeResource()可以将/res/drawable/内预先存入的图片转换成Bitmap对象,decodeStream()方法可以讲InputStream对象转换成Bitmap对象。

你可能感兴趣的:(android)