本文转载自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0306/979.html
BitMap的绘制问题面试的时候经常被问到,所以在此总结一下,方便日后查看。本文提供了三种绘制BitMap的方法,可根据需求和实际情况来选择。
-
使用BitmapFactory解析图片
- // --> 使用BitmapFactory解析图片
- public voidmyUseBitmapFactory(Canvas canvas){
- // 定义画笔
- Paint paint = newPaint();
- // 获取资源流
- Resources rec = getResources();
- InputStream in = rec.openRawResource(R.drawable.haha);
- // 设置图片
- Bitmap bitmap =BitmapFactory.decodeStream(in);
- // 绘制图片
- canvas.drawBitmap(bitmap, 0,20, paint);
- }
-
使用BitmapDrawable解析图片
- // --> 使用BitmapDrawable解析图片
- public voidmyUseBitmapDrawable(Canvas canvas){
- // 定义画笔
- Paint paint = newPaint();
- // 获得资源
- Resources rec = getResources();
- // BitmapDrawable
- BitmapDrawable bitmapDrawable = (BitmapDrawable) rec.getDrawable(R.drawable.haha);
- // 得到Bitmap
- Bitmap bitmap = bitmapDrawable.getBitmap();
- // 在画板上绘制图片
- canvas.drawBitmap(bitmap, 20,120,paint);
- }
-
使用InputStream和BitmapDrawable绘制
- // --> 使用InputStream和BitmapDrawable解析图片
- public voidmyUseInputStreamandBitmapDrawable(Canvas canvas){
- // 定义画笔
- Paint paint = newPaint();
- // 获得资源
- Resources rec = getResources();
- // InputStream得到资源流
- InputStream in = rec.openRawResource(R.drawable.haha);
- // BitmapDrawable 解析数据流
- BitmapDrawable bitmapDrawable = newBitmapDrawable(in);
- // 得到图片
- Bitmap bitmap = bitmapDrawable.getBitmap();
- // 绘制图片
- canvas.drawBitmap(bitmap, 100, 100,paint);
- }