paint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); paint.setColor(Color.BLUE); canvas.drawText("自定义View,canvas对象已经存在。", 30, 40, paint); canvas.drawRect(10, 10, 30, 30, paint);
如上,设置好了Paint的样式后,在canvas上画文本或者矩形都可以。
如果要画一张图片出来,就要像下面这样了。
Bitmap iconbit = BitmapFactory.decodeResource(getResources(), R.drawable.icon) ; canvas.drawBitmap(iconbit, 40,40, paint);
下面是把一个bitmap变成drawable
Bitmap bitmap = Bitmap.createBitmap(200, 100, Config.ARGB_8888) ; ImageView imgView = new ImageView(this) ; //将Bitmap对象转换为Drawable图像资 Drawable drawable = new BitmapDrawable(bitmap) ; imgView .setBackgroundDrawable(drawable) ;
下面这段代码,在bitmap上既画了iconbit又画了一个矩形。
Paint paint = new Paint(); Bitmap iconbit = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher) ; paint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); paint.setColor(Color.RED); Bitmap bitmap = Bitmap.createBitmap(200, 300, Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawBitmap(iconbit, 0,0, paint); Rect rect = new Rect (10,80,180,120) ; //当前的画图区域为Rect裁剪的区域,而不是我们之前赋值的bitmap canvas.clipRect(rect) ; canvas.drawColor(Color.YELLOW); paint.setColor(Color.BLACK); canvas.drawText("裁剪clip后画图区域-黄色部分", 10,100,paint) ; change.setImageBitmap(bitmap);
下面是使用save和restore方法的示例:
Paint paint = new Paint(); //将icon图像转换为Bitmap对象 Bitmap iconbit = BitmapFactory.decodeResource(getResources(), R.drawable.ic_action_search) ; //创建一个的Bitmap对象 Bitmap bitmap = Bitmap.createBitmap(400, 400, Config.ARGB_8888) ; Canvas canvas = new Canvas (bitmap) ; paint.setColor(Color.GREEN); paint.setTextSize(30); //设置字体大小 canvas.drawText("我没有旋转",30, 40, paint); canvas.save() ; canvas.rotate(30) ; paint.setTextSize(13); paint.setColor(Color.BLACK); canvas.drawText("我是旋转的",115,20, paint); canvas.restore(); paint.setColor(Color.BLUE); canvas.drawText("我没有旋转",115,20, paint); //将Bitmap对象转换为Drawable图像资 //为ImageView设置图像 change.setImageBitmap(bitmap); // Drawable drawable = new BitmapDrawable(bitmap) ; // change.setBackgroundDrawable(drawable) ;