我正在开发一个Android应用程序。任何时候屏幕上都会显示六个主要long
个变量。它们在单独的线程上使用计时器不断递增。用户可以在屏幕上观看这些变量的增加。这些变量中的每一个都有最大量。
我想做的是为每个变量绘制一个'进度条'。目前,我正在使用带有纯红色的View
。
请参阅下面的原型:
左边的红色条表示已达到最大值的变量,而其他变量为空,条形宽度为0,因此不可见。每个变量都放在RelativeLayout
(代表一个'section')中,然后放在LinearLayout
中。在未来,我可能需要添加/删除一些 - 因此解决方案不需要依赖硬编码布局定位。
我的问题是我如何编程在代码中设置这些'进度条的宽度,而不是硬编码任何变量的布局坐标?
答案 0 :(得分:0)
您应该检查http://developer.android.com/reference/android/widget/ProgressBar.html ProgressBar。它可以让您轻松显示进度。
对于LinearLayout
(以及此问题的任何ViewGroup
),您可以以编程方式生成自己的LayoutParams
:
LayoutParams params = new LayoutParams(width,height) // in px
yourLinearLayout.setLayoutParams(params);
您需要将LayoutParams转换为相应的ViewGroup
类型。
答案 1 :(得分:0)
常规方法是使用ProgressBar
,但如果您想使用自定义视图,请使用以下命令:
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(withInPx, heightInPx);
yourView.setLayoutParams(lp);
这假定您使用LinearLayout
,但如果您使用其他布局(即RelativeLayout
)
heightInPx
将在您的情况下修复,但withInPx
根据进度可能会有所不同。