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

Android绘图 -扇形

2018-03-13 20:08 204 查看

Android绘图 -扇形

效果图



第一步 创建自定义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
对象放进去

第二个参数是需要设置扇形的出现的位置



分别是:90出现的位置、180出现的位置、270出现的位置和360出现的位置

第三个参数为扇形的宽度,这里的宽度是10:



第四个参数是个布尔值,如果为
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 308