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