Android中如何创建自定义进度条Drawable?
时间: 2024-09-29 20:13:28 浏览: 50
在Android中,创建自定义进度条Drawable通常需要创建一个新的`.xml`资源文件,然后利用矢量绘图(VectorDrawable)或者位图绘制(BitmapDrawable)。这里以向量绘制为例说明:
1. **步骤一:创建矢量资源**
使用XML编辑器创建一个新文件,比如`custom_progress.xml`,并添加以下代码:
```xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M0 8h24v16H0V8zm0 4h24v12H0V12z"
android:strokeWidth="2"
android:strokeColor="#FF0000" /> <!-- 修改颜色和路径数据以定制进度条 -->
</vector>
```
2. **步骤二:应用到控件**
然后在需要显示进度的布局中,将这个Drawable作为`indeterminateDrawable`属性值:
```xml
<ProgressBar
android:id="@+id/myProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateDrawable="@drawable/custom_progress"/>
```
3. **步骤三:代码控制**
如果你想通过代码动态改变Drawable,可以直接替换`indeterminateDrawable`,比如:
```java
progressBar.setIndeterminateDrawable(getResources().getDrawable(R.drawable.custom_progress));
```
这样就创建了一个简单的自定义进度条Drawable。记得在运行时检查是否有权限访问Vector Drawable,如果没有,可能需要在AndroidManifest.xml中添加 `<uses-sdk android:minSdkVersion="API Level 21"/>`。
阅读全文