Android绘图 -扇形
2018-03-13 20:08
204 查看
Android绘图 -扇形
效果图
![](https://i.imgur.com/1er5SAQ.png)
第一步 创建自定义View
ScanRadar:public class ScanRadar extends View{ public ScanRadar(Context context) { super(context); } public ScanRadar(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } /** * 这是绘图方法 * @param canvas */ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); } }
这里需要重写两个方法:
onMeasure和
onDraw方法
第二步 绘图
画笔
在绘图方法里,先创建画笔:Paint paint = new Paint();
然后设置画笔的样式:
实心:
paint.setStyle(Paint.Style.FILL);
空心:
paint.setStyle(Paint.Style.STROKE);
设置画笔颜色:
paint.setColor(Color.GREEN);
这里设置为绿色
然后在设置透明度:
paint.setAlpha(55);
这里的值为:0-255,数值越小越透明
设置线条粗细:
paint.setStrokeWidth(2);
画笔设置到这里就好了
设置控件大小
创建RectF类:RectF oval = new RectF(0, 0, getRight(),getMeasuredWidth());
这里的
getRight()和
getMeasuredWidth()方法是来自View类的,所有直接调用。
这里的填的四个参数分别是:左、上、右、下
画扇形
canvas.drawArc(oval,90,10,true,paint);
第一个参数是需要设置控件大小,把我们上面创建的
RectF对象放进去
第二个参数是需要设置扇形的出现的位置
![](https://i.imgur.com/qXxu6qd.png)
分别是:90出现的位置、180出现的位置、270出现的位置和360出现的位置
第三个参数为扇形的宽度,这里的宽度是10:
![](https://i.imgur.com/5uCqpnZ.png)
第四个参数是个布尔值,如果为
true则把扇形的两边画出来,为
false相反
第五个参数就是画笔了,就是按照画笔的样式来画出来。
完整代码
public class ScanRadar extends View{
public ScanRadar(Context context) {
super(context);
}
public ScanRadar(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
/**
* 这是绘图方法
* @param canvas
*/
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.GREEN);//透明度
paint.setAlpha(80);
paint.setStrokeWidth(2);float x = getMeasuredWidth();
RectF oval = new RectF(0, 0, getRight(),x);
canvas.drawArc(oval,angle,10,true,paint);
}
}
相关文章推荐
- Android绘图机制(二)——自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解
- Android绘图机制(二)——自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解
- Android绘图机制(二)——自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解
- Android opengl 2d绘图/贴图详细教程
- 通过绘图缓存(DrawingCache)捕获屏幕-Android捕获屏幕
- Android中Canvas绘图之Shader使用图文详解
- Android扇形选择器
- Android 绘图进阶(四):自定义View属性(灰常重要)
- Android OpenGL ES 2.0绘图:绘制纹理
- Android中Canvas绘图基础详解(附源码下载)
- 第6章 Android绘图机制与处理技巧(Part 1)
- Android自定义View研究(二) -- 绘图的基本知识
- Android SurfaceView绘图机制
- Android使用achart绘图框架出现java.lang.NoClassDefFoundError错误解决方式
- Android Canvas绘图详解(图文)
- Android绘图那些事儿(上)
- android中表格绘图
- Android手指绘图(二)
- Android绘图机制与处理技巧(一)2D绘图技巧与XML绘图
- 【Android】自己定义View、画家(画布)Canvas与画笔Paint的应用——绘图、涂鸦板app的实现