Подтвердить что ты не робот

Как установить высоту панели прогресса Android?

My activity_main.xml ниже, как вы видите, высота установлена ​​40 dip.   

И в MyEclipse это выглядит так:

enter image description here

Но когда я запускаю его на своем телефоне, он выглядит следующим образом:

enter image description here

Итак, мой вопрос в том, почему реальная высота панели прогресса не та, которую я установил? Как увеличить высоту панели прогресса?

4b9b3361

Ответ 1

Из данного руководства:

<style name="CustomProgressBarHorizontal" parent="android:Widget.ProgressBar.Horizontal">
      <item name="android:progressDrawable">@drawable/custom_progress_bar_horizontal</item>
      <item name="android:minHeight">10dip</item>
      <item name="android:maxHeight">20dip</item>
</style>

Затем просто примените стиль к вашим индикаторам хода или лучше, переопределите стиль по умолчанию в своей теме, чтобы автоматически создать все ваши полосы хода приложений.

Разница, которую вы видите на скриншотах, связана с тем, что телефоны/эмуляторы используют разницу версии для Android (последняя - тема из ICS (Holo), вверху - оригинальная тема).

Ответ 2

Я думаю, что самым простым решением было бы следующее:

mProgressBar.setScaleY(3f);

Ответ 3

android: scaleY = "8" в вашем XML файле

Ответ 4

Используйте этот

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

Ответ 5

Как упоминалось в других ответах, похоже, что вы настраиваете стиль своего индикатора выполнения, чтобы использовать Holo.Light:

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

Если это работает на вашем телефоне, возможно, это устройство на 3.0+. Однако ваш эмулятор выглядит так, как будто он использует индикатор выполнения по умолчанию.

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

Возможно, вы изменили стиль на индикатор хода "по умолчанию" между созданием снимков экрана? К сожалению, 2.x устройства не будут автоматически возвращаться к строке состояния "по умолчанию", если в ваших проектах используется индикатор прогресса Holo.Light. Он просто потерпит крах.

Если вы действительно используете индикатор выполнения по умолчанию, тогда установка максимальной/минимальной высоты, как было предложено, будет работать нормально. Однако, если вы используете панель Holo.Light(или Holo), то установка максимальной/минимальной высоты не будет работать. Вот пример вывода из установки максимальной/минимальной высоты до 25 и 100 dip:

max/min, установленное до 25 dip: 25 dip height progress bar

max/min, установленное на 100 dip: 100 dip height progress bar

Вы можете видеть, что базовый drawable (progress_primary_holo_light.9.png) не масштабируется, как вы ожидали. Причина этого заключается в том, что граница с 9 патчами ограничивает только верхние и нижние пиксели:

9-patch

Горизонтальная область, граничащая с однопиксельной черной рамкой (зеленые стрелки), является частью, которая растягивается, когда Android необходимо изменить размер .png по вертикали. Область между двумя красными стрелками не будет растягиваться вертикально.

Лучшим решением для исправления является изменение 9patch.png, чтобы растянуть панель, а не "область холста", а затем создать пользовательский индикатор выполнения xml для использования этих 9-ти патчей. Аналогично описано здесь: fooobar.com/questions/80620/...

Вот моя реализация только для не-неопределенного Holo.Light ProgressBar. Вам нужно будет добавить свои собственные 9-патч для неопределенного и Holo ProgressBars. В идеале я должен был полностью удалить область холста. Вместо этого я оставил его, но установил область "бар" растяжимой. https://github.com/tir38/ScalingHoloProgressBar

Ответ 6

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

Ответ 7

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

Ответ 8

Это индикатор выполнения, который я использовал.

<ProgressBar
     android:padding="@dimen/dimen_5"
     android:layout_below="@+id/txt_chklist_progress"
     android:id="@+id/pb_media_progress"
     style="@style/MyProgressBar"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_gravity="center"
     android:progress="70"
     android:scaleY="5"
     android:max="100"
     android:progressBackgroundTint="@color/white"
     android:progressTint="@color/green_above_avg" />

И это мой стиль тега

 <style name="MyProgressBar" parent="@style/Widget.AppCompat.ProgressBar.Horizontal">
    <item name="android:progressBackgroundTint">@color/white</item>
    <item name="android:progressTint">@color/green_above_avg</item>
</style>

Ответ 9

Вы можете установить стиль индикатора выполнения на это:

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