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) ;
分享到:
相关推荐
在Android平台上,绘制图形是一项基本任务,涉及到多个关键类,如Bitmap、Drawable和Canvas,以及Paint。这些类共同构成了Android图形系统的核心,使得开发者能够创建丰富的用户界面和自定义视图。 首先,Bitmap是...
首先,Canvas可以看作是画布,它提供了在屏幕上画图的基础。当我们创建一个View并重写其`onDraw()`方法时,系统会提供一个Canvas对象。我们可以通过这个对象调用各种绘制方法,如`drawRect()`, `drawCircle()`, `...
本文将深入探讨Android中Canvas画图的相关知识点,帮助你理解和掌握其核心功能。 1. **Canvas的基本概念** - Canvas是Android系统提供的一个类,它提供了在二维画布上进行绘制的方法。 - 通常,我们会在一个...
canvas.drawBitmap(pointerBitmap, 0, 0, paint); canvas.restore(); ``` 在这个例子中,`currentValue`是当前值,`maxValue`是最大值,`pivotX`和`pivotY`是旋转中心,`pointerBitmap`是预先准备好的指针图片。 ...
在Android平台上,开发人员可以利用Canvas和Bitmap等组件来实现丰富的图形绘制功能,包括但不限于画图、签名等交互式操作。Canvas是Android图形系统的核心部分,它提供了在内存中的Bitmap上绘制各种形状、线条和图像...
Canvas用于在Bitmap上画图,而Paint则定义了图形的样式,如颜色、线宽、字体等。本示例将详细介绍如何使用这两个类来在Android应用中绘制一个安卓机器人的图像。 首先,我们需要理解Canvas的基本概念。Canvas可以...
8. **位图操作**:`drawBitmap(Bitmap bitmap, float left, float top, Paint paint)`可以将位图绘制到Canvas上。`drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint)`允许通过Matrix进行位图的缩放、旋转等...
总之,Android的画图功能强大且灵活,通过Canvas、Bitmap、Paint、Path等类的组合使用,可以创造出丰富多样的2D图形和动画效果,满足各种定制化的需求。在实际开发中,熟练掌握这些知识点能帮助开发者打造出更具吸引...
- 创建一个`Canvas`对象,将Bitmap作为参数传递给它的构造函数,如`Canvas canvas = new Canvas(bitmap)`。 2. **颜色和画笔(Paint)**: - 创建一个`Paint`对象,用于设置线条的颜色、宽度、样式等。例如,`Paint...
在Android开发中,Canvas是绘制2D图形的重要工具,它提供了在Bitmap上画图的功能。"安卓之Canvas撕衣服"这个话题,实际上是指利用Canvas、Bitmap和Paint等Android图形库组件来实现一种特殊效果,即在屏幕上模拟...
在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式...canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG)); eg: im
Canvas支持设置绘制颜色(如`setColor()`),还可以定义笔刷样式(如`setStrokeWidth()`、`setStyle(Paint.Style.STROKE)`)和填充模式(如`setFillPaint()`、`setStrokePaint()`)。 6. **路径绘图**: Canvas...
总的来说,Android画图涉及到的内容广泛,从基本的Bitmap和Canvas操作,到复杂的Drawable和Paint配置,再到动态的Animation设计。熟练掌握这些知识点,将有助于开发者创建出富有表现力和交互性的Android应用。
本项目“Android基于Canvas,自定义View实现的简单画图工具”就是利用这些技术创建了一个简易的绘图应用,用户可以在此画布上进行绘画操作,如绘制直线、矩形、圆形以及自由手绘,并且具备橡皮擦功能,可以擦除已有...
- **Bitmap**:通常,我们会在Bitmap对象上进行Canvas绘图,Bitmap是Android中的图像数据存储格式,可以理解为画布的背景。 2. **绘图方法** - `drawRect()`: 绘制矩形,可以设置填充色和边框颜色。 - `...
- 在SurfaceView上增加Bitmap,可以先创建Bitmap,然后在Canvas上绘制该Bitmap,如`canvas.drawBitmap(bitmap, srcRect, dstRect, paint)`。 4. **屏幕截图**: - 要截图SurfaceView,首先需要将SurfaceView的...
在Android平台上,画图功能是通过Canvas类和相关的图形API实现的,这使得开发者能够创建丰富的自定义视图和交互式图形界面。本压缩包"android 画图集合.zip"包含多个示例项目,旨在帮助开发者深入理解Android图形...
首先,Android提供了多种方式来绘制图形,主要包括Canvas、Paint、Path以及Bitmap等类。Canvas是绘画的基础,它提供了在特定Surface上绘制各种形状和文本的方法。Paint对象则用来设置绘制的颜色、风格、字体等属性。...