android canvas怎么创建

 我来答
孟轲文氏言n
2017-02-20 · TA获得超过207个赞
知道小有建树答主
回答量:352
采纳率:0%
帮助的人:304万
展开全部
工具/原料

电脑(windows)
eclipse+android编程环境
方法/步骤

首先新建一个android项目名字为CanvasShow,其余参数可以自己配置,点击完成,形成项目信息

配置main.xml,在这里main.xml 基本不用修改,只需增加
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/root"
>
</LinearLayout>

CanvasShowInfo中实现方法:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init() {
LinearLayout layout=(LinearLayout) findViewById(R.id.root);
final CanvasDraw view=new CanvasDraw(this);
view.setMinimumHeight(500);
view.setMinimumWidth(300);
//通知view组件重绘 这个很重要!
view.invalidate();
layout.addView(view);

}
那么CanvasDraw.java中实现了什么呢?

声明CanvasDraw.java 继承View,重写其中的onDraw方法。
比如画圆:
// 创建画笔
Paint p = new Paint();
p.setColor(Color.RED);// 设置红色
canvas.drawText("画圆:", 10, 20, p);// 画文本
canvas.drawCircle(40, 40, 15, p);// 分别是 圆心的x,y坐标,15为半径
p.setAntiAlias(true);// 设置画笔的锯齿效果。 true是去除,大家一看效果就明白了
canvas.drawCircle(100, 120, 50, p);// 分别是 圆心的x,y坐标,50为半径
从图中可以看见,去除锯齿的图形更加圆滑。下面是相对应的效果图

canvas.drawText("画矩形:", 10, 90, p);
p.setColor(Color.BLUE);// 设置灰色
p.setStyle(Paint.Style.FILL);//设置填满
canvas.drawRect(60, 60, 80, 80, p);// 正方形
canvas.drawRect(70, 90, 300, 100, p);// 长方形
// drawRect函数前两个参数是一个顶点的坐标,后两个参数是对顶点的坐标,相对应的效果图

canvas.drawText("画扇形:", 120, 120, p);
// 设置渐变色 这个扇形的颜色是改变的 /
Shader mShader = new LinearGradient(0, 0, 100, 100,
new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW,
Color.LTGRAY }, null, Shader.TileMode.REPEAT); // 一个材质,打造出一个线性梯度沿著一条线。
p.setShader(mShader);
p.setColor(Color.BLUE);
RectF oval2 = new RectF(60, 100, 200, 240);// 设置个新的长方形,扫描测量
canvas.drawArc(oval2, 200, 130, true, p);
// 画弧,第一个参数是RectF:该类是第二个参数是角度的开始,第三个参数是多少度,第四个参数是真的时候画扇形,是假的时候画弧线

其中:
public void drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)
oval :指定圆弧的外轮廓矩形区域。
startAngle: 圆弧起始角度,单位为度。
sweepAngle: 圆弧扫过的角度,顺时针方向,单位为度。
useCenter: 如果为True时,在绘制圆弧时将圆心包括在内,通常用来绘制扇形。
paint: 绘制圆弧的画板属性,如颜色,是否填充等。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式