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:
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):
- Android: Animación horizontal personalizada de la barra de progreso
- Smooth Progress Bar Animación
- Mostrar una barra de progreso en una ficha secundaria hasta que el WebView se cargue
- ¿Cómo puedo mostrar un ProgressBar sólo después de un retardo mínimo?
- Cómo crear barra de progreso como la imagen en Android
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->
Slider_track_progress->
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?
- Subida de archivos ¿No obtiene respuesta de devolución de llamada regular?
- ¿Cómo mostrar la animación de progreso de carga para alguna imagen?
- android.widget.ProgressBar no se puede convertir en android.widget.LinearLayout
- Cómo mostrar la barra de progreso al cargar con porcentaje
- show ProgressBar o Dialog de un IntentService para el progreso de la descarga
- ¿Cómo implementar una pantalla de bienvenida con una barra de progreso? androide
- Estado de la barra de progreso android
- Android ProgressBar: cómo configurar el color secundario mediante programación
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.
- ViewFlipper no se está volviendo con la vista de lista secundaria
- Android: almacenamiento en caché de elementos para el rendimiento