Można utworzyć SeekBar w formacie XML w następujący sposób ...
<SeekBar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bpseekbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:max="100"
android:maxHeight="8dp"
...
Teraz chcę to zrobić programowo od czasutrzeba dostosować maxHeight na podstawie rozdzielczości ekranu (tak, wiem, że nie należy tego robić, ale mam ku temu uzasadnione powody). Nie mam problemów z programowym ustawieniem parametrów, poza tym, że nie mogę się dowiedzieć, jak ustawić maksymalna wysokość. Czuję, że muszę użyć atrybutów, ale nie mogłem znaleźć dokładnie jak. Jakieś wskazówki?
Odpowiedzi:
4 dla odpowiedzi № 1Nie jest to możliwe bezpośrednio. SeekBar (właściwie ProgressBar, który SeekBar rozszerza) pobiera maxHeight tylko z atrybutów układu XML, nie ma odpowiedniej metody.
Dodatkowo ProgressBar zwiększa jego maxHeight w wywołaniu setProgressDrawable, aby mieć co najmniej wysokość drawable. Możesz to wykorzystać.
Inną możliwością jest rozszerzenie SeekBar i udostępnienie własnej metody onMeasure. To jest właśnie tam, gdzie używana jest maxHeight. Następnie możesz użyć rozszerzonego SeekBar w układzie xml.