我怎样才能进入一个进步圈

时间:2012-10-13 18:20:44

标签: android drawable shape android-drawable

在Android中制作这个圈子的最佳方法是什么?我不想学习OpenGL只是为了绘制一个简单的进度圈(环),但如果没有其他方法我会。在开始之前,我想问你们,你们怎么想。我对如何做到这一点有各种建议。

An embossed circle, blue over half way around, showing \"69%\" in the middle.

3 个答案:

答案 0 :(得分:3)

Android中内置了ProgressBar窗口小部件,默认情况下会显示为圆圈。

您可以使用ImageView支持的ShapeDrawable作为响铃,并使用您选择的渐变扫描填充。

您可以创建100个PNG文件,每个百分比一个,并使用这些文件,可能通过LevelListDrawable

您可以使用View以自定义Canvas自行绘制整个内容。

也可能有其他替代方案,但这应该可以帮助你。

答案 1 :(得分:0)

使用SVG显然不太难,请查看Leandro Linares'progress circle example

答案 2 :(得分:0)

坦克到@CommonsWare,这是我的代码示例

public class SampleView extends View {

    public SampleView(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        Canvas canvas.drawColor(Color.CYAN);
        Paint p = new Paint();
        // smooths
        p.setAntiAlias(true);
        p.setColor(Color.RED);
        p.setStyle(Paint.Style.STROKE); 
        p.setStrokeWidth(5);
        // opacity
        //p.setAlpha(0x80); //

        RectF rectF = new RectF(50, 20, 100, 80);
        canvas.drawOval(rectF, p);
        p.setColor(Color.BLACK);
        canvas.drawArc (rectF, 90, 45, true, p);
    }
}