Posibilidad de hacer esquinas redondeadas en la progresión Progressbar personalizada ¿Dibujable?

Tengo una barra de progreso que se supone que se parece a la imagen adjunta: Introduzca aquí la descripción de la imagen

Y lo he hecho un largo camino. Estoy muy cerca de la única parte que no está funcionando son las esquinas redondeadas para el progressiveDrawable. Aquí está lo que parece el mío. (Aviso, rodeado en rojo, que el relleno dentro del contorno blanco no tiene esquinas redondeadas): Introduzca aquí la descripción de la imagen

Por lo tanto, he encontrado un par de maneras de hacer que este trabajo cuando la barra de progreso se colorea con una forma, degradado o color. PERO, no puedo conseguirlo con una imagen como el progressDrawable.

Aquí está mi clase que extiende 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); } } 

Aquí está mi selector:

 <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> 

Aquí están las imágenes utilizadas en el selector:

Slider_track-> Introduzca aquí la descripción de la imagen
Slider_track_progress-> Introduzca aquí la descripción de la imagen

Aquí es donde inserto mi barra de progreso en el diseño de mi actividad

 <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" /> 

Alguien sabe cómo hacer que este trabajo?

No está seguro de si realmente puede redondear los bordes a través de la API, pero podría muy fácilmente añadir una nueva capa entre su contorno blanco, y su objeto de progreso real? La capa podría ser un recorte exacto del contorno blanco y, por lo tanto, la barra de progreso no se mostraría fuera del contorno.

Pruebe esto, puede hacer lo que quiera modificando el color, el ancho y la altura del pulgar y el buscador en xml.

Puedes ver la imagen aquí

Este sulotion era la única manera que podía hacer esto. Espero que esto ayude

Este es mi buscador:

  <SeekBar android:id="@+id/simpleProgressBar" android:layout_width="fill_parent" android:layout_height="12dp" android:max="100" android:progress="0" android:background="@null" android:shape="oval" android:splitTrack="false" android:progressDrawable="@drawable/progress_background" android:secondaryProgress="0" android:thumbOffset="10dp" android:thumb="@drawable/oval_seekbar_thumb" /> 

Esto es (progress_background.xml):

 <item android:id="@android:id/background"> <shape android:shape="rectangle"> <corners android:radius="5dp" /> <gradient android:angle="270" android:endColor="@color/grey_line" android:startColor="@color/grey_line" /> </shape> </item> <item android:id="@android:id/secondaryProgress"> <clip> <shape android:shape="oval"> <corners android:radius="5dp" /> <gradient android:angle="270" android:endColor="@color/blue" android:startColor="@color/blue" /> </shape> </clip> </item> <item android:id="@android:id/progress"> <clip> <shape android:shape="rectangle"> <corners android:radius="90dp" /> <gradient android:angle="90" android:endColor="@color/colorPrimaryDark" android:startColor="@color/colorPrimary" /> </shape> </clip> </item> 

Y este es el pulgar (oval_seekbar_thumb.xml):

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="oval"> <solid android:color="#ffffff" /> <stroke android:color="@color/colorPrimaryDark" android:width="3dp"/> <size android:height="12dp" android:width="12dp"/> </shape> </item> </selector> 

La altura del pulgar debe ser la misma que la altura de la barra de búsqueda para mirar correctamente.

  • Agregar la barra de progreso en la parte inferior de una vista de lista
  • Cambiar color de la barra de progreso a través de CÓDIGO SOLAMENTE en Android
  • Cómo establecer el tema para ProgressBar indeterminista en ProgressDialog en Android
  • Android cambia el color de la barra de progreso Horizonal
  • ¿Es posible tener un dibujo animado?
  • Androide progreso dentro de edittext
  • ¿Cómo mostrar el estado de la barra de progreso por porcentaje mientras se suben los datos de json?
  • Cómo cambiar dinámicamente el color del fondo de la barra de progreso android
  • La barra de progreso horizontal personalizada de Android de la barra dibujable se estira
  • Android: EditText con barra de progreso?
  • Crear cuadro de diálogo con barra de progreso en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.