如何设置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: 25浸高度进度条

最大/最小设置为100倾angular: 100浸高度进度条

你可以看到底层drawable(progress_primary_holo_light.9.png)没有像你期望的那样缩放。 原因是9贴片边界只是缩放顶部和底部的几个像素:

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"