Android: Как изменить высоту ProgressBar? - PullRequest
15 голосов
/ 29 апреля 2010

Мне было интересно, как проще всего изменить высоту ProgressBar в Android?

Спасибо

Томек

Ответы [ 4 ]

25 голосов
/ 29 апреля 2010

Если ваш индикатор выполнения определен в макете XML, похоже, что вы определяете его высоту следующим образом:

<ProgressBar  
android:minHeight="20dip" 
android:maxHeight="20dip"/>

Однако я просто делаю предположение из этой статьи .

17 голосов
/ 31 января 2014

Хитрость заключается в том, чтобы ваш ProgressBar использовал стиль «старый», без ореолов. В противном случае он будет использовать изображение с 9 участками для рисования прогресса, и вы не сможете изменить высоту, если не будете манипулировать изображением. Итак, вот что я сделал:

индикатор выполнения:

<ProgressBar
  android:id="@+id/my_progressbar"
  style="@android:style/Widget.ProgressBar.Horizontal"
  android:layout_width="fill_parent"
  android:layout_height="10dp"
  android:progressDrawable="@drawable/horizontal_progress_drawable_red" />

прогресс прорисовки (horizontal_progress_drawable_red.xml):

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
        <shape>
            <solid android:color="#808080"/>
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <solid android:color="#80ff0000"/>
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#ff0000"/>
            </shape>
        </clip>
    </item>

</layer-list>
16 голосов
/ 13 февраля 2015

Вам нужно заменить

style=”?android:attr/progressBarStyleHorizontal”

до

style="@android:style/Widget.ProgressBar.Horizontal"

и layout_height будет работать

android:layout_height="50dp"
1 голос
/ 30 мая 2016

Можно использовать этот код:

mProgressBar.setScaleY(3f);

Или используйте собственный стиль

с ценностно> styles.xml

<style name="tallerBarStyle" parent="@android:style/Widget.SeekBar">
    <item name="android:indeterminateOnly">false</item>
    <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
    <item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item>
    <item name="android:minHeight">8dip</item>
    <item name="android:maxHeight">20dip</item>
</style>

Затем в вашем ProgressBar добавьте:

style="@style/tallerBarStyle"
...