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));
}
最后附一张最终效果图:
本文参考: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));
}
最后附一张最终效果图:
相关文章推荐
- android基础笔记——自定义控件和视图:放ios系统开关按钮
- Android自定义控件前导基础知识学习(一)——Canvas
- Android 基础-------自定义控件
- Android 自定义控件基础 canvas paint
- Android自定义控件_基础(五)
- android基础笔记——自定义控件和视图:优酷菜单:RotateAnimation
- Android-自定义控件基础-图片预览和多点触控
- Android 自定义控件之基础几何图形绘制详解
- Android自定义控件:绘图基础Canvas、Paint类
- Android-自定义控件基础-抽奖转盘(SurfaceView)
- Android自定义控件前导基础知识学习(一)——Canvas
- android开发基础之---------------自定义控件的使用
- Android自定义控件开发系列(零)——基础原理篇
- android 自定义控件基础知识1
- Android 自定义控件学习之一 基础知识
- android基础之自定义控件-topbar
- android 自定义控件基础之三种约束类型
- Android基础之自定义控件、布局以及ListView控件
- [自定义控件]android自定义view基础
- Android-自定义控件基础-流式布局