Möglich zu tun abgerundeten Ecken in benutzerdefinierten Progressbar-progressDrawable?

Habe ich einen Fortschrittsbalken, der soll Aussehen wie das angehängte Bild:Möglich zu tun abgerundeten Ecken in benutzerdefinierten Progressbar-progressDrawable?

Und ich habe es ein langer Weg. Ich bin sehr nahe das einzige Teil, das nicht funktioniert, ist die abgerundete Ecken für die progressDrawable. Hier ist, was mir aussieht. (Beachten Sie, eingekreist in rot, dass die Füllung im inneren der weiße Rahmen nicht an den Ecken abgerundet):Möglich zu tun abgerundeten Ecken in benutzerdefinierten Progressbar-progressDrawable?

So, ich habe gefunden ein paar Möglichkeiten, um diese Arbeit zu machen, wenn der Fortschrittsbalken ist gefärbt mit einer Form, Farbverlauf oder Farbe. ABER, ich kann es nicht wieder mit einem Bild als die progressDrawable.

Hier ist meine Klasse, die Sie erweitert ProgressBar

public class RoundedProgressBar extends ProgressBar{
private Paint paint;

public RoundedProgressBar(Context context) {
    super(context);
    setup();
}

public RoundedProgressBar(Context context, AttributeSet attrs) {
    super(context, attrs);
    setup();
}

public RoundedProgressBar(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    setup();    ;
}

protected void setup()
{
    paint = new Paint();
}

@Override
protected synchronized void onDraw(Canvas canvas) {
    //First draw the regular progress bar, then custom draw our text
    super.onDraw(canvas);
    paint.setColor(Color.WHITE);
    paint.setStyle(Paint.Style.STROKE);
    RectF r = new RectF(0,0,getWidth()-1,getHeight()-1);
    canvas.drawRoundRect(r,getHeight()/2,getHeight()/2, paint);
}
 }

Hier ist meine Auswahl:

<layer-list
 xmlns:android="http://schemas.android.com/apk/res/android"
 >
 <item
 android:id="@android:id/background"
 android:drawable="@drawable/slider_track" />
 <item
 android:id="@android:id/secondaryProgress"
 android:drawable="@drawable/slider_track" />
 <item
 android:id="@android:id/progress"
 android:drawable="@drawable/slider_track_progress" />
 </layer-list>

Hier sind die Bilder in der Auswahl:

slider_track->Möglich zu tun abgerundeten Ecken in benutzerdefinierten Progressbar-progressDrawable?

slider_track_progress->Möglich zu tun abgerundeten Ecken in benutzerdefinierten Progressbar-progressDrawable?

Hier ist, wo ich einbetten meine progressbar in das layout für meine Tätigkeit

<com.android.component.RoundedProgressBar
    android:id="@+id/player_hp_bar"
    android:layout_width="fill_parent"
    android:layout_height="36dip"
    android:layout_marginLeft="30dip"
    android:layout_marginRight="30dip"
    android:max="100"
    style="?android:attr/progressBarStyleHorizontal"
    android:progressDrawable="@drawable/slider_layer_list"
    android:progress="20"
    android:maxHeight="12dip"
    android:minHeight="12dip"
/>

Weiss jemand wie man diese Arbeit zu machen?

InformationsquelleAutor b-ryce | 2011-04-14
Schreibe einen Kommentar