首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Canvas ,Paint,Bit地图画图

2012-09-28 
Canvas ,Paint,Bitmap画图Canvas画布,所有画出来的图形都在Canvas上,Paint是画笔,用来渲染画布上画出来的

Canvas ,Paint,Bitmap画图
Canvas画布,所有画出来的图形都在Canvas上,Paint是画笔,用来渲染画布上画出来的图形,而Bitmap是一个图片的容器,用来存放图片的。

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

热点排行