您的位置:首页 > 移动开发 > Android开发

Android自定义控件基础

2016-10-13 11:48 169 查看
我觉得人应自强不息。

本文参考:http://blog.csdn.net/harvic880925/article/details/38875149

package com.example.customwidget;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Paint.Style;

import android.graphics.RectF;

import android.view.View;

public class MyView extends View{

Context mContext;

public MyView(Context context) {

super(context);

mContext=context;

}

//重写OnDraw方法,在每次重绘时自主实现绘图

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

//设置画笔的属性

Paint paint = new Paint();

paint.setAntiAlias(true);//打开抗锯齿功能

paint.setColor(Color.BLACK);//设置画笔的颜色

paint.setStyle(Style.FILL);//设置填充样式

paint.setStrokeWidth(5);//设置画笔宽度

//半径

// paint.setShadowLayer(10, 15, 15, Color.GREEN);//设置阴影层

//设置画布背景颜色

canvas.drawRGB(255, 255, 255);

// //画圆

// canvas.drawCircle(190, 200, 150, paint);

//画直线

// canvas.drawLine(100, 100, 200, 200, paint);

//多条直线

// float[] pts={10,10,100,100,200,200,400,400};

// canvas.drawLines(pts, paint);

//点

// canvas.drawPoint(100, 100, paint);

//多个点

// float[] pts={10,10,100,100,200,200,400,400};

// canvas.drawPoints(pts, paint);

//矩形 左上右下

// canvas.drawRect(10, 10, 100, 100, paint);

//圆角矩形

// RectF rectF= new RectF(100,10,300,100);

// canvas.drawRoundRect(rectF, 20,10 , paint);

//椭圆

// paint.setStyle(Style.STROKE);//更改样式为描边

// RectF rect= new RectF(100,10,300,100);

// canvas.drawRect(rect, paint);//画矩形

// paint.setColor(Color.GREEN);//更改画笔颜色

// canvas.drawOval(rect, paint);

//弧

paint.setStyle(Style.STROKE);//更改样式为描边

// paint.setColor(Color.RED);//更改画笔颜色

RectF rect = new RectF(100,10,300,200);

// canvas.drawRect(rect, paint);

paint.setColor(Color.RED);//更改画笔颜色

// float startAngle:弧开始的角度,以X轴正方向为0度

// float sweepAngle:弧持续的角度

// boolean useCenter:是否有弧的两边,True,还两边,False,只有一条弧

//补充:false和true的区别在于 图形是否封闭

//此时有阴影,隐藏一些代码即可

//设置填充

paint.setStyle(Style.FILL);

canvas.drawArc(rect, 0, 90, true, paint);

}

}

activity里面的重要代码

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

RelativeLayout root=(RelativeLayout) findViewById(R.id.root);

root.addView(new MyView(MainActivity.this));

}

最后附一张最终效果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: