【Android开发】图形图像处理技术-常用绘图类之Canvas类

Canvans类代表画布,通过该类提供的方法,可以绘制各种图形(如矩形、圆形和线条等)。通常情况下,要在Android中绘图,需要先创建一个继承自View类的视图,并且在该类中重写onDraw(Canvas canvas)方法,然后在显示绘图的Activity中添加该视图。

下面通过一个具体的实例来说明如何创建用于绘图的画布。

1.创建一个名称为DrawView的类,继承android.view.View类,并添加构造方法和重写onDraw(Canvas canvas)方法,关键代码如下:

package com.example.test;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class DrawView extends View{
	/*
	 * 功能:构造方法
	 * */
	public DrawView(Context context, AttributeSet attrs) {
		super(context, attrs);

	}

	/*
	 * 功能:重写onDraw方法
	 * */
	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);

	}
}

设置布局文件main.xml
res/layout/main.xml:
创建线性布局管理器,然后在里面添加上面创建的自定义视图DrawView:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/tableLayout1"
    android:orientation="vertical"
    >
 	<com.example.test.DrawView
 	    android:id="@+id/drawView1"
 	    android:layout_width="wrap_content"
 	    android:layout_height="wrap_content"/>
</LinearLayout>

在上面创建的自定义视图DrawView的onDraw()方法中,添加以下代码,用于绘制一个带阴影的红色矩形

Paint paint=new Paint();
paint.setColor(Color.RED);
paint.setShadowLayer(2, 3, 3, Color.rgb(180, 180, 180));
canvas.drawRect(40, 40,200,100,paint);

即是:

package com.example.test;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class DrawView extends View{
	/*
	 * 功能:构造方法
	 * */
	public DrawView(Context context, AttributeSet attrs) {
		super(context, attrs);

	}

	/*
	 * 功能:重写onDraw方法
	 * */
	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		Paint paint=new Paint();
		paint.setColor(Color.RED);
		paint.setShadowLayer(2, 3, 3, Color.rgb(180, 180, 180));
		canvas.drawRect(40, 40,200,100,paint);
	}
}

效果如图所示

转载请注明出处:http://blog.csdn.net/acmman/article/details/45156381

时间: 2024-08-31 02:06:49

【Android开发】图形图像处理技术-常用绘图类之Canvas类的相关文章

【Android开发】图形图像处理技术-常用绘图类之Paint类

    Paint类代表画笔,用来描述图形的颜色风格,如线宽.颜色.透明度和填充效果等信息.使用Paint类时,首先需要创建该类的对象,这可以通过该类提供的构造方法来实现.通常情况下,只需要使用无参数的构造方法来创建一个使用默认设置的Paint对象,具体代码如下: Paint paint=new Paint(); 创建Paint类的对象之后,还可以通过该对象提供的方法来对画笔的默认设置进行改变,例如,改变画笔的颜色.笔触宽度等.用于改变画笔设置的常用方法如表所示: 1.图像绘制 setARGB(

Android开发中4个常用的工具类【Toast、SharedPreferences、网络及屏幕操作】

本文实例讲述了Android开发中4个常用的工具类.分享给大家供大家参考,具体如下: 1.土司工具类(Toast管理) /** * Toast统一管理类 * * @Project App_ZXing * @Package com.android.scan * @author chenlin * @version 1.0 * @Date 2013年7月6日 * @Note TODO */ public class ToastUtil { private ToastUtil() { /* canno

android中图形图像处理之drawable用法分析_Android

本文实例讲述了android中图形图像处理之drawable用法.分享给大家供大家参考.具体如下: 一.如何获取 res 中的资源 数据包package:android.content.res 主要类:Resources 其主要接口按照功能,划分为以下三部分: getXXXX() 例如: int getColor(int id) Drawable getDrawable(int id) String getString(int id)  直接获取res中存放的资源 InputStream ope

android中图形图像处理之drawable用法分析

本文实例讲述了android中图形图像处理之drawable用法.分享给大家供大家参考.具体如下: 一.如何获取 res 中的资源 数据包package:android.content.res 主要类:Resources 其主要接口按照功能,划分为以下三部分: getXXXX() 例如: int getColor(int id) Drawable getDrawable(int id) String getString(int id)  直接获取res中存放的资源 InputStream ope

Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】

本文实例讲述了Android开发实现的IntentUtil跳转多功能工具类.分享给大家供大家参考,具体如下: 说明:此工具类是本人开发中总结下来的,还有其它的跳转亲给我留言,希望大家一起把这个工具类打造成最全的跳转工具,谢谢! package com.android.chat.utils; import java.io.File; import java.io.Serializable; import android.app.Activity; import android.content.Co

【Android开发】图形图像处理技术-Bitmap和BitmapFactory类

一.Bitmap类 Bitmap类代表位图,是Android系统中图像处理的一个重要类.使用该类,不仅可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,而且还可以指定格式保存图像文件.对于这些操作,都可以通过Bitmap类提供的方法来实现.Bitmap类提供的常用方法如表所示: (1)public final int getHeight():获取位图宽度 (2)public final int getWidth():获取位图高度 (3)public static Bitmap createB

【Android开发】图形图像处理技术-绘制文本

在Android中,虽然可以通过TextView或图片现实文本,但是在开发游戏,特别是开发RPG(角色)类游戏时,会包含很多文字,使用TextView和图片显示文本不太合适,这时,就需要通过绘制文本的方式来实现. Canvas类提供了一系列绘制文本的方法,下面分别行介绍: 1.drawText()方法用于在画布的指定位置绘制文字.该方法比较常用的语法格式如下: drawText(String Text,float x,float y,Paint paint); text用于指定要绘制的文字,x.

【Android开发】图形图像处理技术-绘制路径

在Android中提供了绘制路径的功能.绘制一条路径可以分为创建路径和将定义好的路径绘制在画布上两部分,下面分别进行介绍. 1.创建路径 要创建路径,可以使用android.graphics.Path类来实现.Path类包含一组矢量绘图方法,如画圆.矩形.弧.线条等.常用的绘图方法如下表: void  addArc(RectF oval, float startAngle, float sweepAngle)  //为路径添加一个多边形   void  addCircle(float x, fl

【Android开发】图形图像处理技术-绘制几何图形

常见的几何图形包括点.线.弧.矩形等.在Android中,Canvas类提供了丰富的绘制几何图形的方法,通过这些方法,可以绘制出各种几何图形.常用的几何图形的绘制方法如下所示:1. 画一个圆使用的是drawCircle:canvas.drawCircle(cx, cy, radius, paint);x.y代表坐标.radius是半径.paint是画笔,就是画图的颜色; 2. 在画图的时候还要有注意,你所画的矩形是实心(paint.setStyle(Paint.Style.FILL))还是空心(