一.drawable 圖形對象,可以轉載常用格式的圖像,可能是(位圖)Bitmapdrawable,或者shapedrawable(圖形),還可能是多種其他圖片格式GIF,PNG,JEPG
二.Bitmap 就是位圖,用于圖片的處理
三.Canvas 意為畫布,就是繪畫的目標區域,用來管理Bitmp或者path路徑
下面就是講到drawable轉換成Bitmap的方法
我所知有兩種方法(兩種方法誰好誰壞,得看情況)
(1)常見的一種方法就是創建個Bitmap出來,再用畫布綁定這個位圖,將drawable繪到Bitmap上(此方法用于此時的drawable對象不是bitmap圖像時)
Bitmap bitmap=Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);//創建一個size寬size高的一個位圖Canvas canvas=new Canvas(bitmap);//將畫布綁定到該位圖上,為接下來的drawable繪畫做準備drawable.setBounds(0,0,size,size);//drawable設置大小與位圖相同drawable.draw(canvas);//將drawable通過畫布畫到Bitmap上去
(2)另外一種方法就是直接獲取Bitmap(bitmapdrawable)
Bitmap icon=BitmapFactory.decodeResource(context.getResources(),R.drawable.icon_resource)//將drawable對象中的icon_resource圖像轉換成位圖文件icon
或者
BitmapDrawable bd = (BitmapDrawable) drawable;//先轉換成Bitdrawable bitmap = bd.getBitmap();//再通過getBitmap()獲取到Bitmap
另外關于drawmap()方法的說明
drawBitmap()方法:繪制圖像,該方法用于在畫布上繪制圖像,是通過Bitmap對象來實現,當要引入圖片資源時,我們可以采取該方法。
drawBitmap (Bitmap bitmap, float left, float top, Paint paint)
參數說明
bitmap:Bitmap對象,代表了圖像資源。
left:圖像顯示的左邊位置。
top:圖像顯示的上邊位置。
paint:繪制時所使用的畫筆。
在上述方法1中就是采用了該方法。
public class MyTile extends View{public Bitmap[] bitmap1; PRivate static final int size=12;public MyTile(Context context, AttributeSet attrs){super(context, attrs);Get_Bitmap();// TODO 自動生成的構造函數存根}/* (非 javadoc) * @see android.view.View#onDraw(android.graphics.Canvas) */public void Get_Bitmap(){bitmap1=new Bitmap[1];Bitmap bitmap=Bitmap.createBitmap(size, size, Config.ARGB_8888);//創建一個size正方形大小的新位圖 Drawable drawable=getResources().getDrawable (R.drawable.greenstar);//獲取drawable對象Canvas canvas=new Canvas(bitmap);//Bitmap綁定畫布drawable.setBounds(0,0,size,size);//設置drawable對象大小size drawable.draw(canvas);//最后將drawable畫到Bitmap的canvas上去 bitmap1[0]=bitmap;}protected void onDraw(Canvas canvas){// TODO 自動生成的方法存根super.onDraw(canvas);Paint paint=new Paint();paint.setColor(Color.BLACK); canvas.drawBitmap(bitmap1[0], 200, 200, paint);}}
上述方法可以裁定圖片的大小尺寸,在自定義位圖大小的情況下通常采用這種方法
新聞熱點
疑難解答