24.Android之Paint和canvas简单应用学习

在Android中需要通过graphics类来显示2D图形,graphics中包括了Canvas(画布)、Paint(画笔)、Color(颜色)、Bitmap(图像)等常用的类。graphics具有绘制点、线、颜色、2D几何图形、图像处理等功能。

1.Paint(画笔)类

要绘制图形,首先得调整画笔,按照自己的开发需要设置画笔的相关属性。Pain类的常用属性设置方法如下:

setAntiAlias(); //设置画笔的锯齿效果

setColor(); //设置画笔的颜色

setARGB(); //设置画笔的A、R、G、B值

setAlpha(); //设置画笔的Alpha值

setTextSize(); //设置字体的尺寸

setStyle(); //设置画笔的风格(空心或实心)

setStrokeWidth(); //设置空心边框的宽度

getColor(); //获取画笔的颜色

2.Canvas(画布)类

drawRect(RectF rect, Paint paint) //绘制区域,参数一为RectF一个区域

drawPath(Path path, Paint paint) //绘制一个路径,参数一为Path路径对象

drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) //贴图,参数一就是我们常规的Bitmap对象,参数二是源区域(这里是bitmap),参数三是目标区域(应该在canvas的位置和大小),参数四是Paint画刷对象,因为用到了缩放和拉伸的可能,当原始Rect不等于目标Rect时性能将会有大幅损失。

drawLine(float startX, float startY, float stopX, float stopY, Paintpaint) //画线,参数一起始点的x轴位置,参数二起始点的y轴位置,参数三终点的x轴水平位置,参数四y轴垂直位置,最后一个参数为Paint 画刷对象。

drawPoint(float x, float y, Paint paint) //画点,参数一水平x轴,参数二垂直y轴,第三个参数为Paint对象。

drawText(String text, float x, floaty, Paint paint) //渲染文本,Canvas类除了上面的还可以描绘文字,参数一是String类型的文本,参数二x轴,参数三y轴,参数四是Paint对象。

drawOval(RectF oval, Paint paint)//画椭圆,参数一是扫描区域,参数二为paint对象;

drawCircle(float cx, float cy, float radius,Paint paint)// 绘制圆,参数一是中心点的x轴,参数二是中心点的y轴,参数三是半径,参数四是paint对象;

drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)//画弧,参数一是RectF对象,一个矩形区域椭圆形的界限用于定义在形状、大小、电弧,参数二是起始角(度)在电弧的开始,参数三扫描角(度)开始顺时针测量的,参数四是如果这是真的话,包括椭圆中心的电弧,并关闭它.

下面看一个自己写的简单例子:

首先,我们需要自定义一个类,比如MyView,继承于View类。然后,复写View类的onDraw()函数。最后,在onDraw()函数中使用Paint和Canvas对象绘制我们需要的图形。

代码如下:

 1 package com.example.paint_canvasdemo;
 2
 3 import android.content.Context;
 4 import android.graphics.Canvas;
 5 import android.graphics.Color;
 6 import android.graphics.Paint;
 7 import android.graphics.Paint.Style;
 8 import android.view.View;
 9 import java.lang.Math;
10
11 public class MyView extends View {
12
13     private int screenW, screenH;    //用于屏幕的宽高
14
15     public MyView(Context context) {
16         super(context);
17         // TODO Auto-generated constructor stub
18     }
19
20     protected void onDraw(Canvas canvas) {
21         super.onDraw(canvas);
22         //获得屏幕的宽和高
23         screenW = this.getWidth();
24         screenH = this.getHeight();
25
26         Paint paint_circle = new Paint();
27         // 设置颜色
28         paint_circle.setColor(Color.BLUE);
29         // 设置空心 Style.FILL为实心
30         paint_circle.setStyle(Style.STROKE);
31         // 消除锯齿
32         paint_circle.setAntiAlias(true);
33         // 设置空心线宽
34         paint_circle.setStrokeWidth(10);
35         // 画圆形
36         canvas.drawCircle(screenW/2, screenH/2, 200, paint_circle);
37
38         // 绘制正方形
39         paint_circle.setColor(Color.RED);
40         int x1 = (int) Math.sqrt(2);
41         int rect_xy = 200 * x1 / 2;
42         canvas.drawRect( screenW/2-rect_xy, screenH/2-rect_xy , screenW/2+rect_xy, screenH/2+rect_xy, paint_circle);
43     }
44
45 }

然后修改下MainActivity.java代码即可:

 1 package com.example.paint_canvasdemo;
 2
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5
 6 public class MainActivity extends Activity {
 7
 8     @Override
 9     protected void onCreate(Bundle savedInstanceState) {
10         super.onCreate(savedInstanceState);
11         //setContentView(R.layout.activity_main);
12         setContentView(new MyView(this));
13     }
14
15
16 }

运行效果:

时间: 2024-10-11 04:54:11

24.Android之Paint和canvas简单应用学习的相关文章

Android的Paint、Canvas和Matrix讲解

Paint类介绍 Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色, 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法,大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关. 1.图形绘制 setARGB(int a,int r,int g,int b); 设置绘制的颜色,a代表透明度,r,g,b代表颜色值. setAlpha(int a); 设置绘制图形的透明度. setColor(int color); 设置绘制的颜色,使用颜色值来表示,该颜色值包

Android 画图Paint和Canvas

在Android中需要通过graphics类来显示2D图形. graphics中包括了Canvas(画布).Paint(画笔).Color(颜色).Bitmap(图像)等常用的类.graphics具有绘制点.线.颜色.2D几何图形.图像处理等功能. Canvas: void drawRect(RectF rect, Paint paint) //绘制区域,参数一为RectF一个区域 void drawPath(Path path, Paint paint) //绘制一个路径,参数一为Path路径

android 用paint,canvas 绘图

#include <iostream> using namespace std; // quick sort //另外,如果数组是引用传递可以通过函数模板的实参推断来自动获得它长度 template<typename T,int N> void printArr(T (&arr)[N]) { int i = 0; while(i<N) { cout << arr[i] <<" "; i++; } cout <<e

Android 画个电池出来(Paint和canvas)

1.Android中很多时候都要自己去画一个自定义控件出来,就需要用到Paint和Canvas这两个类. 2.效果图: 3.直接上代码: 1 public class BatteryView extends View { 2 3 private Paint mBatteryPait; 4 private Paint mPowerPaint; 5 private float mBatteryStroke = 2.0f; 6 7 /** 8 * 屏幕的高宽 9 * 10 * @param conte

Android 绘图之一:Canvas 及 Paint 简介

前言 除了使用已有的图片之外,Android应用常常需要在运行时根据场景动态生成2D图片,比如手机游戏,这就需要借助于Android2D绘图的支持.本篇博客主要讲解一下Android下使用Canvas进行绘图的相关操作.最后将以一个简单的Demo演示如何使用Canvas在ImageView上画图并保存. 画布Canvas 在Android下进行2D绘图需要Canvas类的支持,它位于"android.graphics.Canvas"包下,直译过来为画布的意思,用于完成在View上的绘图

【Android】21.2 Canvas和Paint

分类:C#.Android.VS2015: 创建日期:2016-03-19 一.Canvas对象简介 画布(Canvas对象)是与System.Drawing或iOS核心图形等传统框架非常类似的另一种图形图像绘制技术,该对象提供了创建2D图形的最大控制,利用它可解决难以处理画板资源的情况.例如,绘制自定义滑块控件的外观等. 可以把Canvas理解成系统提供给我们的一块内存区域(但实际上它只是一套绘图API,真正的内存是下面的Bitmap),而且它还提供了一整套对这个内存区域进行操作的方法,所有的

Android - Canvas 简单总结

在自定义控件时,经常需要使用canvas.paint等,在canvas类中,绘画基本都是靠drawXXX()方法来完成的,在这些方法中,很多时候都需要用到paint类型的参数,本文先对paint类常用的一些设置做个简单总结 paint 属性设置简单总结 图形绘制相关: public void set(Paint src)  根据已有画笔的属性进行赋值 public void setColor(int color) 设置颜色 public void setAlpha(int alpha) 设置透明

Android中自定义常用的三个对象解析(Paint,Color,Canvas)

Paint,Color,Canvas Paint:画笔对象,画图用的"笔" Color:颜色,相当于调料 Canvas:画布,现实中的纸板 Paint 画笔 常用的方法就是设置和获取到画笔的样式: paint.setStyle(); 设置画笔的风格,空心的或者是实心的 paint.setColor(); 设置画笔的颜色 paint.setStrokeWidth(); 设置边框线的宽度 paint.setAlpha(); 设置画笔的Alpha值 paint.setAntiAlias();

Android画图最基本的三个对象(Color,Paint,Canvas)

三个类都存放在 android.graphics包下 1) Color :颜色对象,相当于现实生活中的 ‘调料’ 2) Paint : 画笔对象,相当于现实生活中画图用的 ‘笔’————主要的还是对‘画笔’进行设置 3) Canvas : 画布对象,相当于现实生活中画图用的 ‘纸 或 布’ 三者相结合,就能画出基本的图形 常用方法: 1)Color :颜色对象 1.可以通过 Color.颜色名,来获取颜色,应为是静态的,返回一个整数值 2.调用静态的 argb方法,可以调出个性的颜色 alpha