我想在进度条中添加初始填充,但这是动态的,因为我正从本地数据库中检索初始填充的值。
我已经使用layer-list xml文件设置了进度条的背景。
`
<corners android:radius="7dip" />
<gradient
android:startColor="@color/background_start"
android:centerColor="@color/background_center"
android:centerY="0.75"
android:endColor="@color/background_end"
android:angle="270" />
<stroke
android:color="@color/stroke"
android:width="0.5dip"/>
</shape>
<corners android:radius="7dip" /> <gradient android:startColor="@color/secondory_progress_start" android:centerColor="@color/secondory_progress_center" android:centerY="0.75" android:endColor="@color/secondory_progress_end" android:angle="270" /> <stroke android:color="@color/stroke" android:width="0.5dip"/> </shape> </clip>
<corners
android:radius="7dip" />
<padding android:left="360dip"
android:right="50dip"/>
<gradient
android:startColor="@color/default_progress_start"
android:centerColor="@color/default_progress_center"
android:centerY="0.75"
android:endColor="@color/default_progress_end"
android:angle="270"
/>
<stroke
android:color="@color/stroke"
android:width="0.5dip"/>
</shape>
</clip>
在java代码中,我正在引用xml文件,如下所示:
layerDrawable = (LayerDrawable)progressBar.getProgressDrawable();
并像这样检索简单进度子:
Drawable drawable = layerDrawable.getDrawable(layerDrawable.getId(2));
,因为它位于xml文件的第二级。
我将最大值和进度值设置为进度条。现在我想为进度条的进度值添加一些左边距。我尝试使用setBounds方法:
`Rect rect = new Rect();
rect = drawable.getBounds();
rect.left = drawable.getBounds()。left + getPaddingForFirstPeriod()+ 300; rect.right = rect.left +(int)50; drawable.setBounds(RECT);`
但它对进度条的主要进度值没有任何影响,除此之外没有可用的填充方法。
请帮忙
答案 0 :(得分:0)
旧的View.setPadding(l,t,r,b)
不再有用了吗?