«

Android中canvas画图的简单应用

时间:2024-3-2 18:37     作者:韩俊     分类: Android


在最近的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);


标签: android

热门推荐