Android Paint Canvar 画几何图形

最近在研究自定义控件,遇到了几何图形的绘制,这里就贴出来常见的例子:

①首先在主Activity中代码:

package com.example.mycustomwidget;

import android.app.Activity;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.RectF;

import android.os.Bundle;

import android.util.AttributeSet;

import android.view.View;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

MyCustomView myView = new MyCustomView(MainActivity.this);

setContentView(myView);

}

}

②MyCustomView中代码:

package com.example.mycustomwidget;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Rect;

import android.graphics.RectF;

import android.util.AttributeSet;

import android.view.View;

public class MyCustomView extends View{

public MyCustomView(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub

}

public MyCustomView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

// TODO Auto-generated constructor stub

}

public MyCustomView(Context context) {

super(context);

// TODO Auto-generated constructor stub

}

@Override

protected void onDraw(Canvas canvas) {

// TODO Auto-generated method stub

super.onDraw(canvas);

//设置画布的颜色

canvas.drawColor(Color.BLUE);

//-----------------------------①画一个空心正方形--------------------------------

//创建一个画笔

Paint mPaint = new Paint();

//设置画笔为空心

mPaint.setStyle(Paint.Style.STROKE);

//设置画颜色

mPaint.setColor(Color.RED);

//设置画笔宽度

mPaint.setStrokeWidth(10);

/**

* 创建一个矩形

* 第一个参数:矩形左顶点的X轴坐标

* 第二个参数:矩形左顶点的Y轴坐标

* 第三个参数:矩形右下角顶点的X轴坐标

* 第四个参数:矩形右下角顶点的Y轴坐标

*/

Rect mRect = new Rect(10, 10, 50, 50);

//开始画矩形了

canvas.drawRect(mRect, mPaint);

//-----------------------------②画一个实心正方形--------------------------------

//设置画笔为实心

mPaint.setStyle(Paint.Style.FILL);

//重新设置矩形的大小

mRect.set(60, 60, 100, 100);

canvas.drawRect(mRect, mPaint);

//-----------------------------③画一个空心长方形--------------------------------

//设置画笔的宽度

mPaint.setStrokeWidth(2);

mPaint.setStyle(Paint.Style.STROKE);

mRect.set(70, 110, 140, 140);

canvas.drawRect(mRect, mPaint);

//-----------------------------④画一个空心圆--------------------------------

//消除锯齿

mPaint.setAntiAlias(true);

/**

* 画一个空心圆

* 第一个参数:圆心的X轴坐标

* 第二个参数:圆心的Y轴坐标

* 第三个参数:圆的半径

* 第四个参数:画笔

*/

canvas.drawCircle(180, 180, 20, mPaint);

//-----------------------------⑤画一个实心圆--------------------------------

mPaint.setStyle(Paint.Style.FILL);

canvas.drawCircle(230, 220, 20, mPaint);

//-----------------------------⑥画一段实心扇形--------------------------------

//先画一个矩形

RectF oval = new RectF(240, 240, 300, 300);

/**

* 画一段实心扇形

* 第一个参数:一个矩形,用户定义扇形的大小

* 第二个参数:画扇形的起始角度

* 第三个参数:要画的角度

* 第四个参数是否包括圆形(true为包括,一般用于画扇形;false为不包括,一般用于画弧形)

* 第四个参数:画笔

*/

canvas.drawArc(oval, 0, 40, true, mPaint);

//-----------------------------⑦画一段空心扇形--------------------------------

mPaint.setStyle(Paint.Style.STROKE);

oval.set(290, 290, 350, 350);

canvas.drawArc(oval, 0, 60, true,mPaint);

//-----------------------------⑧画一段弧--------------------------------

oval.set(360, 360, 400, 400);

canvas.drawArc(oval, 0, 70, false, mPaint);

//-----------------------------⑨画一个内切圆--------------------------------

oval.set(360, 360, 400,400);

canvas.drawRect(oval, mPaint);

canvas.drawArc(oval, 0, 360, false, mPaint);

}

}

时间: 2024-10-07 08:42:33

Android Paint Canvar 画几何图形的相关文章

Android利用canvas画各种图形

canvas通俗的说就是一张画布,我们可以使用画笔paint,在其上面画任意的图形. 原理: 可以把canvas视为Surface的替身或者接口,图形便是绘制在Surface上的.Canvas封装了所有的绘制调用.通过Canvas, 绘制到Surface上的内容首先存储到一个内存区域(也就是对应的Bitmapz中),该Bitmap最终会呈现到窗口上. 使用: 1.Canvas可以直接new Canvas(): 2.在View中重写OnDraw()方法,里面有一个Canvas,今天讨论的内容. 方

Android Paint之PathEffect详解

尊重原创,转载请标明出处    http://blog.csdn.net/abcdef314159 在之前讲Android Paint的使用详解的时候,其中有一个方法setPathEffect(PathEffect effect)没有详细介绍,这篇就结合代码来介绍一下,在之前说过PathEffect共有6个子类ComposePathEffect,CornerPathEffect,DashPathEffect,DiscretePathEffect,PathDashPathEffect,SumPat

Android OpenGL ES 画球体

最近因为兴趣所向,开始学习OpenGL绘图.本文以"画球体"为点,小结一下最近所学. > 初识OpenGL ES 接触OpenGL是从Android开始的.众所周知,Android View 是线程不安全的,于是只允许在主线程中对View进行操作.然而假如我们需要实现复杂的界面,特别是开发游戏,在主线程中画大量图像,会耗费比较长的时间,使得主线程没能及时响应用户输入,甚至出现ANR.于是Android提供了一个 SurfaceView类,通过双缓冲机制(两块画布?三块画布?),允

Android小应用-----画画板

public class MainActivity extends Activity { private ImageView iv; float startX = 0; float startY = 0; //获得一个可以被bitmap Bitmap bitmap = Bitmap.createBitmap(400, 400,Bitmap.Config.ARGB_8888); //创建画布 Canvas canvas = new Canvas(bitmap); //创建画笔 Paint pain

android开发之画图版

android开发之画图版 一.新的开始,也是新的挑战: 开始学习java,除了刚开始的时候有些难,觉得难有些晕,慢慢接触之后也就挺好的了, 学习了4天的安卓开发,完成了一个小程序,收获还是不小的:有一些java的基础,所以相对的画图板还是比较简单(对于理解代码而言):但是因为android和java有不一样的地方,所以有些地方应该要注意:不管怎么说新鲜的东西,新的起点.頑張って. 二.初识android: android开发,第一个印象就是,测试麻烦:要用虚拟机或者接上手机,第一次测试的时候,

【转】Android Paint之 setXfermode PorterDuffXfermode 讲解

[置顶] Android Paint之 setXfermode PorterDuffXfermode 讲解 分类: android动效篇2015-04-07 17:23 978人阅读 评论(8) 收藏 举报 setXfermodePorterDuffXfermode图层混合模式android图像混合模式AvoidXfermode 尊重原创,欢迎转载,转载请注明: FROM  GA_studio   http://blog.csdn.net/tianjian4592 前面关于paint的方法讲解里

Android Paint的使用以及方法介绍(附源码下载)

要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下: setAntiAlias: 设置画笔的锯齿效果.    setColor: 设置画笔颜色    setARGB:  设置画笔的a,r,p,g值.    setAlpha:  设置Alpha值    setTextSize: 设置字体尺寸.    setStyle:  设置画笔风格,空心或者实心.    

android 用代码画虚线边框背景

               1.虚线画效果,可以使用Android中的xml来做. 2.直接上代码: <RelativeLayout android:id="@+id/coupon_popup" android:layout_width="320dp" android:layout_height="200dp" android:layout_margin="20dp" android:gravity="cen

android 用代码画虚线边框背景(转)

1.虚线画效果,可以使用Android中的xml来做. 2.直接上代码: <RelativeLayout android:id="@+id/coupon_popup" android:layout_width="320dp" android:layout_height="200dp" android:layout_margin="20dp" android:gravity="center_vertical&qu