Sto creando un'interfaccia utente dal codice e posso aggiungere con successo i widget ProgressBar, tuttavia non posso modificare le dimensioni del widget sui valori che mi servono, rimane sempre nella dimensione predefinita (intorno 50dp). Ho provato il seguente codice;Modifica la larghezza di una ProgressBar aggiunta in fase di esecuzione
ProgressBar progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleHorizontal);
progressBar.setMinimumHeight(20);
progressBar.setMinimumWidth(100);
Ho anche provato a installare i LayoutParams Progressbar ma ancora niente e ho provato avvolgendo il widget in un altro layout, ma ancora non fortuna.
Qualcuno può aiutare, visto che non riesco a vedere come si fa? Se esiste una soluzione che utilizza XML, potrebbe funzionare, ma devo impostare la dimensione e il percorso in fase di esecuzione.
Per Progress XML ho utilizzato quanto segue.
<ProgressBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="10dp"
android:indeterminateOnly="false"
android:progressDrawable="@android:drawable/progress_horizontal"
android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
android:maxWidth="1000dp"
/>
Quindi il codice per gonfiarlo è il seguente. Questo è un mix di ciò di cui abbiamo discusso.
LayoutInflater layoutInflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ProgressBar progressBar = (ProgressBar)layoutInflater.inflate(R.layout.progress_bar, null);
progressBar.setMinimumHeight(10);
progressBar.setMinimumWidth(200);
progressBar.setLayoutParams(new RelativeLayout.LayoutParams(200, 10);
progressBar.setMax(100);
progressBar.setProgress(getScrollBarValue());
progressBar.setIndeterminate(isIndeterminate());
progressBar.getLayoutParams().width = 200;
progressBar.invalidate();
Immagino che una soluzione sarebbe quella di copiare il codice sorgente per il widget e implementare i metodi mancanti. Sembra una soluzione pazzesca, ci deve essere un modo per farlo. – Snowwire
Giusto per confermare: stai cercando gli stili della barra, non gli stili di selezione? Probabilmente sarebbe sufficiente scoprire dove sono definiti gli stili/forme e copiarli e regolarli. – sstn