Android中canvas畫圖的簡單應用

在最近的Android的實驗中用到了繪製圖形,於是簡單的學習了一下利用canvas進行2D圖形的簡單繪製,一下是個人的總結,以便日後翻看。


其中,有三個重要的東西:

Bitmap、Canvas、Paint

以實際生活中的繪畫過程進行類比的話,更容易理解:

1.Bitmap:相當於畫布

   其創建有很多種,這裏只說一種很簡單的方式:

    Bitmap baseBitmap = Bitmap.createBitmap(x,  y, Config.ARGB_8888); 

    x,y參數分別制訂了該畫布的大小。

2.Canvas:相當於畫家

    Canvas canvas = new Canvas(baseBitmap);

    畫家手裏需要有畫布

3.paint:相當於畫筆

    畫筆可以設置粗細,顏色等屬性

    Paint paint = new Paint(); 

    paint.setStrokeWidth(5);

    paint.setColor(Color.RED);  

4.最後是作畫

   canvas.drawXXXX()進行繪製,其提供了各種形狀,圖片的繪製。

   下面是圖片的簡單繪製方法:

   InputStream is = getResources().openRawResource(R.drawable.map);   
   Bitmap mBitmap = BitmapFactory.decodeStream(is);   
   Paint mPaint = new Paint();   
   canvas.drawBitmap(mBitmap, 0, 0, mPaint);  



以下是實例代碼:

//獲取imageview

imView1 =(ImageView) findViewById(R.id.select_picture1);

//按照imageview的大小創建畫布

Bitmap baseBitmap = Bitmap.createBitmap(imView1.getWidth(),  imView1.getHeight(), Config.ARGB_8888);  

//將背景圖片繪製上去

Canvas canvas = new Canvas(baseBitmap);
canvas.drawColor(Color.WHITE);
 InputStream is = getResources().openRawResource(R.drawable.map);   

 Bitmap mBitmap = BitmapFactory.decodeStream(is);   
 Paint mPaint = new Paint();   
canvas.drawBitmap(mBitmap, 0, 0, mPaint);   

//將定位圖標繪製上去
 Paint paint = new Paint();  
paint.setStrokeWidth(5); 
 paint.setColor(Color.RED);  
InputStream is1 = getResources().openRawResource(R.drawable.mylocation);   
 Bitmap mBitmap1 = BitmapFactory.decodeStream(is1);   
canvas.drawBitmap(mBitmap1, x, y, paint); 
// 把圖片展示到ImageView中  
 imView1.setImageBitmap(baseBitmap); 


   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章