一个BitmapDrawable就是封装了一个位图。直接以文件的方式,就是封装了一个原始的位图。要了解BitmapDrawable的使用,还需要明白Bitmap、BitmapFactory等类。Bitmap代表了一个原始的位图,并且可以对位图进行一系列的变换操作。BitmapFactory提供一系列的方法用于产生一个Bitmap对象。多用在Canvas中。下面贴一段BitmapDrawable获取Bitmap的代码片段,附带简单的图片裁剪和缩放:
/**
* 功能:显示缩略图,大小为40*40
* @param rsid
* @return
*/
public Bitmap getAdjustBitmap(int rsid){
//通过openRawResource获取一个inputStream对象
InputStream inputStream = getResources().openRawResource(rsid);
//通过一个InputStream创建一个BitmapDrawable对象
BitmapDrawable drawable = new BitmapDrawable(inputStream);
//通过BitmapDrawable对象获得Bitmap对象
Bitmap bitmap = drawable.getBitmap();
//利用Bitmap对象创建缩略图
bitmap = ThumbnailUtils.extractThumbnail(bitmap, 40, 40);
return bitmap;
}
/**
* 功能:image2从image1中截取120*120大小后显示,截取起始坐标为(x,y)
* @param img0
* @param img1
* @return
*/
public void setCutBitmap(ImageView img0,ImageView img1,int x,int y){
BitmapDrawable bitmapDrawable = (BitmapDrawable) img0.getDrawable();
//获取第一个图片显示框中的位图
Bitmap bitmap= bitmapDrawable.getBitmap();
//显示图片的指定区域
img1.setImageBitmap(Bitmap.createBitmap(bitmap, x, y, 120, 120));
}
源码下载请点击: 源码下载