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); 


   

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