5

私は、このような「円形のプログレスバー」を必要とするアプリケーションに取り組んでいます (色を変更したり、途中で空にしたりする必要はありません。単純なことで十分ですが、したい場合は色の変更方法も教えてください。喜んで学びます:))

ここに画像の説明を入力

アプリでバッテリーのパーセンテージを表示するために使用したい

4

4 に答える 4

2

このlibのようなものが役立つことを願っています

レイアウトでの定義は簡単です:

<com.lylc.widget.circularprogressbar.example.CircularProgressBar
    android:id="@+id/circularprogressbar1"
    style="@style/Widget.ProgressBar.Holo.CircularProgressBar"
    android:layout_width="120dip"
    android:layout_height="120dip"
    android:layout_marginTop="10dip"
    circular:subtitle="subtitle"
    circular:title="Title" />

使い方も複雑ではありません。

CircularProgressBar c3 = (CircularProgressBar) findViewById(R.id.circularprogressbar3);
c3.setTitle("June");
c3.setSubTitle("2013");
c3.setProgress(42);

必要に応じて、アニメーションの進行状況もサポートします。すべての著作権は元の著者に帰属します。私はちょうどそれを見つけました。それが役に立ったことを願っています

于 2014-04-07T13:32:44.973 に答える
1

よく理解できたかどうかわかりませんが、参考になると思います: 円形のプログレス バーの色を変更するにはどうすればよいですか?

于 2012-08-15T17:29:00.017 に答える
0

以下のライブラリを使用できます

https://github.com/chillerlabs/android-circular-progress-bar

これはまさに、円形の進行状況バーで複雑なグラデーションをサポートするものです

于 2015-02-04T05:45:57.430 に答える
0

このメソッドを使用して画像ビューに設定し、画像ビューにビットマップを描画します。このコードを使用して進行状況ダイアログを表示できます。

private void circularImageBar(ImageView iv2, int i) {


    Bitmap b = Bitmap.createBitmap(300, 300,Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(b); 
    Paint paint = new Paint();

        paint.setColor(Color.parseColor("#c4c4c4"));
        paint.setStrokeWidth(10);
        paint.setStyle(Paint.Style.STROKE);
        canvas.drawCircle(150, 150, 140, paint);

        paint.setColor(Color.parseColor("#FFDB4C"));
        paint.setStrokeWidth(10);   
        paint.setStyle(Paint.Style.FILL);
        final RectF oval = new RectF();
        paint.setStyle(Paint.Style.STROKE);
        oval.set(10,10,290,290);

        canvas.drawArc(oval, 270, ((i*360)/100), false, paint);
        paint.setStrokeWidth(0);    
        paint.setTextAlign(Align.CENTER);
        paint.setColor(Color.parseColor("#8E8E93")); 
        paint.setTextSize(140);

        canvas.drawText(""+i, 150, 150+(paint.getTextSize()/3), paint); 

        iv2.setImageBitmap(b);
}
于 2014-10-30T12:42:08.843 に答える