Android缩放drawable

Android缩放drawable

一、相关概念

1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象

2.Canvas画布,绘制的目的区域,用于绘图

3.Bitmap位图,用于图的处理

4.Matrix矩阵,此例中用于操作图片

二、步骤

1.drawable画到位图对象上

2.对位图对象做缩放(或旋转等)操作

3.把位图再转换成drawable

三、示例
static Bitmap drawableToBitmap(Drawable drawable)// drawable
转换成bitmap
{
int width = drawable.getIntrinsicWidth();//
drawable的长宽
int height = drawable.getIntrinsicHeight();
Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888:Bitmap.Config.RGB_565;//
drawable的颜色格式
Bitmap bitmap = Bitmap.createBitmap(width, height, config);//
建立对应bitmap
Canvas canvas = new Canvas(bitmap);//
建立对应bitmap的画布
drawable.setBounds(0, 0, width, height);
drawable.draw(canvas);//
drawable内容画到画布中
return bitmap;
}

static Drawable zoomDrawable(Drawable drawable, int w, int h)
{
int width = drawable.getIntrinsicWidth();
int height= drawable.getIntrinsicHeight();
Bitmap oldbmp = drawableToBitmap(drawable);// drawable
转换成bitmap
Matrix matrix = new Matrix();//
创建操作图片用的Matrix对象
float scaleWidth = ((float)w / width);//
计算缩放比例
float scaleHeight = ((float)h / height);
matrix.postScale(scaleWidth, scaleHeight);//
设置缩放比例
Bitmap newbmp = Bitmap.createBitmap(oldbmp, 0, 0, width, height, matrix, true);//
建立新的bitmap,其内容是对原bitmap的缩放后的图
return new BitmapDrawable(newbmp);//
bitmap转换成drawable并返回
}
}

更多相关文章

  1. 类和 Json对象
  2. Android(安卓)matrix 控制图片的旋转、缩放、移动
  3. android之BitMap
  4. Android中文API(144) —— JsonWriter
  5. android之BitMap
  6. Android之Handler用法总结
  7. android通过ksoap2对webservice的解析
  8. Android(安卓)View的介绍和使用
  9. android WebView 图片缩放功能小结

随机推荐

  1. android TextView显示文字和图片
  2. Android中dip, dp, px, sp之间的区别
  3. Android源码下载
  4. 2013.05.16——— android 关于listview
  5. android下giflib
  6. [Android] 录音与播放录音实现
  7. android添加外部按键
  8. Android 中自定义View的应用
  9. Android spannableStringBuilder用法整理
  10. Android Menu功能菜单