我想创建一个没有背景的ProgressBar。我已经能够将背景变为透明,但在背景通常显示的空间中仍然存在填充。将填充设置为0不会更改此设置。是否有可能在不创建自定义绘图的情况下实现我想要的目标?
答案 0 :(得分:0)
问题是用于ProgressBar的默认9Patch图像周围有空格。例如,下面是用于主要进度,次要进度和背景的标准holo_dark图像。如您所见,它们的图像中都有透明空间区域。
progress_primary_holo_dark.9.png
progress_secondary_holo_dark.9.png
progress_bg_holo_dark.9.png
为了实现您的目标,您需要提供自己的9Patch图像,这些图像没有这些额外的空间。在代码中使用setProgressDrawable()或在xml中使用android:progressDrawable,为ProgressBar设置Drawable。
您可以将所有必要的图像组合在单个LayerList Drawable中,就像Android操作系统一样。例如:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/my_progress_bg" />
<item android:id="@android:id/secondaryProgress">
<scale android:scaleWidth="100%"
android:drawable="@drawable/my_progress_secondary" />
</item>
<item android:id="@android:id/progress">
<scale android:scaleWidth="100%"
android:drawable="@drawable/my_progress_primary" />
</item>
</layer-list>
您可以在正在开发的计算机上的sdk / platforms / android-xx / data / res /文件夹中找到Android使用的所有默认图形资源。