`

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) ; 
分享到:
评论

相关推荐

    android 画图 bitmap drawable canvas paint

    在Android平台上,绘制图形是一项基本任务,涉及到多个关键类,如Bitmap、Drawable和Canvas,以及Paint。这些类共同构成了Android图形系统的核心,使得开发者能够创建丰富的用户界面和自定义视图。 首先,Bitmap是...

    canvas、paint绘图

    首先,Canvas可以看作是画布,它提供了在屏幕上画图的基础。当我们创建一个View并重写其`onDraw()`方法时,系统会提供一个Canvas对象。我们可以通过这个对象调用各种绘制方法,如`drawRect()`, `drawCircle()`, `...

    Android下使用Canvas画图

    本文将深入探讨Android中Canvas画图的相关知识点,帮助你理解和掌握其核心功能。 1. **Canvas的基本概念** - Canvas是Android系统提供的一个类,它提供了在二维画布上进行绘制的方法。 - 通常,我们会在一个...

    Android上canvas自定义画图案例

    canvas.drawBitmap(pointerBitmap, 0, 0, paint); canvas.restore(); ``` 在这个例子中,`currentValue`是当前值,`maxValue`是最大值,`pivotX`和`pivotY`是旋转中心,`pointerBitmap`是预先准备好的指针图片。 ...

    Android 画图/签名

    在Android平台上,开发人员可以利用Canvas和Bitmap等组件来实现丰富的图形绘制功能,包括但不限于画图、签名等交互式操作。Canvas是Android图形系统的核心部分,它提供了在内存中的Bitmap上绘制各种形状、线条和图像...

    Android中使用Canvas和Paint绘制一个安卓机器人示例代码

    Canvas用于在Bitmap上画图,而Paint则定义了图形的样式,如颜色、线宽、字体等。本示例将详细介绍如何使用这两个类来在Android应用中绘制一个安卓机器人的图像。 首先,我们需要理解Canvas的基本概念。Canvas可以...

    android canvas 画图

    8. **位图操作**:`drawBitmap(Bitmap bitmap, float left, float top, Paint paint)`可以将位图绘制到Canvas上。`drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint)`允许通过Matrix进行位图的缩放、旋转等...

    android画图

    总之,Android的画图功能强大且灵活,通过Canvas、Bitmap、Paint、Path等类的组合使用,可以创造出丰富多样的2D图形和动画效果,满足各种定制化的需求。在实际开发中,熟练掌握这些知识点能帮助开发者打造出更具吸引...

    画图工具Android 的

    - 创建一个`Canvas`对象,将Bitmap作为参数传递给它的构造函数,如`Canvas canvas = new Canvas(bitmap)`。 2. **颜色和画笔(Paint)**: - 创建一个`Paint`对象,用于设置线条的颜色、宽度、样式等。例如,`Paint...

    android之Canvas撕衣服

    在Android开发中,Canvas是绘制2D图形的重要工具,它提供了在Bitmap上画图的功能。"安卓之Canvas撕衣服"这个话题,实际上是指利用Canvas、Bitmap和Paint等Android图形库组件来实现一种特殊效果,即在屏幕上模拟...

    Android画图之抗锯齿paint和Canvas两种方式实例

    在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿。其实Android自带了解决方式...canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));  eg: im

    Android画图示例集合

    Canvas支持设置绘制颜色(如`setColor()`),还可以定义笔刷样式(如`setStrokeWidth()`、`setStyle(Paint.Style.STROKE)`)和填充模式(如`setFillPaint()`、`setStrokePaint()`)。 6. **路径绘图**: Canvas...

    android画图总结

    总的来说,Android画图涉及到的内容广泛,从基本的Bitmap和Canvas操作,到复杂的Drawable和Paint配置,再到动态的Animation设计。熟练掌握这些知识点,将有助于开发者创建出富有表现力和交互性的Android应用。

    Android基于Canvas,自定义View实现的简单画图工具

    本项目“Android基于Canvas,自定义View实现的简单画图工具”就是利用这些技术创建了一个简易的绘图应用,用户可以在此画布上进行绘画操作,如绘制直线、矩形、圆形以及自由手绘,并且具备橡皮擦功能,可以擦除已有...

    Android利用canvas画各种图形源码下载

    - **Bitmap**:通常,我们会在Bitmap对象上进行Canvas绘图,Bitmap是Android中的图像数据存储格式,可以理解为画布的背景。 2. **绘图方法** - `drawRect()`: 绘制矩形,可以设置填充色和边框颜色。 - `...

    最简单的surfaceview画图和截图

    - 在SurfaceView上增加Bitmap,可以先创建Bitmap,然后在Canvas上绘制该Bitmap,如`canvas.drawBitmap(bitmap, srcRect, dstRect, paint)`。 4. **屏幕截图**: - 要截图SurfaceView,首先需要将SurfaceView的...

    android 画图集合.zip

    在Android平台上,画图功能是通过Canvas类和相关的图形API实现的,这使得开发者能够创建丰富的自定义视图和交互式图形界面。本压缩包"android 画图集合.zip"包含多个示例项目,旨在帮助开发者深入理解Android图形...

    看代码学Android开发系列:android画图程序源代码

    首先,Android提供了多种方式来绘制图形,主要包括Canvas、Paint、Path以及Bitmap等类。Canvas是绘画的基础,它提供了在特定Surface上绘制各种形状和文本的方法。Paint对象则用来设置绘制的颜色、风格、字体等属性。...

Global site tag (gtag.js) - Google Analytics