如何设置Android进度条的高度?
我的activity_main.xml
如下所示,如你所见,高度被设置为40。
而在MyEclipse中,它如下所示:
但是当我在手机上运行它时,如下所示:
所以我的问题是为什么进度条的真实高度不是我设置的那个? 如何增加进度栏的高度?
从这个教程 :
<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)的主题,顶部是原始主题)。
我想最简单的解决scheme是:
mProgressBar.setScaleY(3f);
用这个
style="@android:style/Widget.ProgressBar.Horizontal"
正如在其他答案中提到的,它看起来像你正在设置你的进度条的样式使用Holo.Light:
style="@android:style/Widget.Holo.Light.ProgressBar.Horizontal"
如果这是在您的手机上运行,则可能是3.0+设备。 但是,仿真器看起来像使用“默认”进度条。
style="@android:style/Widget.ProgressBar.Horizontal"
也许你在创build屏幕截图之间将样式更改为“默认”进度条? 不幸的是,如果您的项目使用Holo.Light进度条,则2.x设备将不会自动默认回到“默认”进度条。 它只会崩溃。
如果你真的使用默认的进度条,那么设置build议的最大/最小高度将正常工作。 但是,如果您使用的是Holo.Light(或Holo)栏,那么设置最大/最小高度将不起作用。 以下是将最大/最小高度设置为25和100的示例输出:
最大/最小值设置为25 dip:
最大/最小设置为100倾angular:
你可以看到底层drawable(progress_primary_holo_light.9.png)没有像你期望的那样缩放。 原因是9贴片边界只是缩放顶部和底部的几个像素:
以单像素,黑色边框(绿色箭头)为边界的水平区域是Android需要垂直调整.png时拉伸的部分。 两个红色箭头之间的区域不会被垂直拉伸。
解决这个问题的最佳解决scheme是更改9patch .png以扩展条而不是“canvas area”,然后创build一个自定义进度条xml以使用这9个修补程序。 同样在这里描述: https : //stackoverflow.com/a/18832349
这里是我的实现只是一个不确定的Holo.Light ProgressBar。 你将不得不添加你自己的9不确定和Holo ProgressBars的补丁。 理想情况下,我应该完全删除canvas区域。 相反,我离开它,但设置“酒吧”区域可拉伸。 https://github.com/tir38/ScalingHoloProgressBar
<ProgressBar android:minHeight="20dip" android:maxHeight="20dip"/>
android:scaleY =“8”在您的XML文件
值 – > 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"