package com.example.roundprogressbar; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics....
专业领域包括成都做网站、网站建设、电子商务商城网站建设、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。
shape可以设置某一个角圆角,但实现你这个估计不行,你可以叫美工绘制一个,带java代码里面进行控制替换
画半圆的关键所在是shape当中的corners和使用的控件(imageview)的width和height配合使用,而且比较坑的是在xml的预览界面当中看不出效果,需要跑真机才能看出效果。
画虚线
shape xmlns:android=""
android:shape="line" //这句话一定不要漏了
用shape画一个俩边半圆的按钮,可以用图形画。
Circle方法用来画圆、椭圆、圆弧和饼分图。
画圆,Visual Basic需要给出这个圆的圆心位置和它的半径:“对象. Circle Step (x, y),半径,颜色”。
如果不指定对象,指定的就是当前的窗体。
用绘图区的标尺属性,可以使圆心置于绘图区域的中心处。
package com.example.comt;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.RectF;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.view.View;
public class CircleView extends View {
Paint paint,textpaint;
RectF area;
int value = 100;
LinearGradient shader;
public CircleView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
// TODO Auto-generated constructor stub
}
public CircleView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
// TODO Auto-generated constructor stub
}
public CircleView(Context context) {
super(context);
init();
// TODO Auto-generated constructor stub
}
public void setProgress(int value){
this.value = value;
invalidate();
}
public void init() {
paint = new Paint();
paint.setStrokeWidth(50f);
paint.setColor(Color.WHITE);
paint.setStyle(Style.STROKE);
paint.setAntiAlias(true);
textpaint = new Paint();
textpaint.setTextSize(50f);
textpaint.setColor(Color.WHITE);
area = new RectF(100, 100, 500, 500);
shader =new LinearGradient(0, 0, 400, 0, new int[] {
Color.BLUE, Color.WHITE}, null,
Shader.TileMode.CLAMP);
paint.setShader(shader);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
canvas.drawColor(Color.GRAY);
canvas.drawArc(area, 120, 360*value/100 , false, paint);
canvas.drawText(value+"%", 270, 290, textpaint);
}
}
看下是不是你想要的,调用setprogress()既可调节圆环