android用法 - 如何設置Android進度條的高度?



progress-bar android-progressbar (6)

你的xml文件中的android:scaleY =“8”

我的activity_main.xml如下所示,高度設置為40 dip。

在MyEclipse中,它看起來如下:

但是當我在手機上運行時,它看起來如下:

所以我的問題是為什麼進度條的真實高度不是我設置的那個? 如何增加進度條的高度?


Answer #1

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

Answer #2

我想最簡單的解決方案是:

mProgressBar.setScaleY(3f);

Answer #3

正如其他答案中所提到的,看起來您正在設置進度條的樣式以使用Holo.Light:

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

如果這是在您的手機上運行,它可能是3.0+設備。 但是,您的模擬器看起來像使用“默認”進度條。

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

也許您在創建屏幕截圖之間將樣式更改為“默認”進度條? 不幸的是,如果您的項目使用Holo.Light進度條,則2.x設備不會自動默認返回“默認”進度條。 它會崩潰。

如果您確實使用默認進度條,則根據建議設置最大/最小高度將正常工作。 但是,如果您使用的是Holo.Light(或Holo)條,則設置最大/最小高度將不起作用。 以下是設置最大/最小高度為25和100傾角的示例輸出:

最大/最小設置為25下降:

最大/最小設置為100傾角:

您可以看到底層drawable(progress_primary_holo_light.9.png)沒有按照您的預期進行縮放。 原因是9補丁邊框僅縮放頂部和底部幾個像素:

以單像素黑色邊框(綠色箭頭)為界的水平區域是Android需要垂直調整.png大小時被拉伸的部分。 兩個紅色箭頭之間的區域不會垂直拉伸。

解決此問題的最佳解決方案是更改9patch .png以拉伸條形而不是“畫佈區域”,然後創建自定義進度條xml以使用這些9個補丁。 同樣在這裡描述: https://.com/a/18832349 : https://.com/a/18832349

這是我對一個非不確定的Holo.Light ProgressBar的實現。 您必須為不確定和Holo ProgressBars添加自己的9補丁。 理想情況下,我應該完全刪除畫佈區域。 相反,我離開了它,但設置“bar”區域可伸縮。 https://github.com/tir38/ScalingHoloProgressBar


Answer #4

這是我用過的進度條。

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

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




android-progressbar