我正在尝试实现这个进度条设计:
我目前的代码生成了这样的结果:
这是密码:
<item android:id="@android:id/background">
<shape>
<corners android:radius="8dp"/>
<solid android:color="@color/dirtyWhite"/>
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="8dp"/>
<solid android:color="@color/colorPrimaryDark"/>
</shape>
</clip>
</item>
我的进度条:
<ProgressBar
android:id="@+id/activeProgress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:progress="10"
android:progressDrawable="@drawable/rounded_corners_progress_bar"/>
我尝试在<clip
中的<shape>
上添加<size>
属性,以使进度形状小一些,但没有效果。另外,进度条是平的,我希望按照设计弯曲。为了实现设计,我需要更改什么?
7条答案
按热度按时间yquaqz181#
您需要给进度项添加一些填充,如下所示:
将
<clip></clip>
元素替换为<scale android:scaleWidth="100%"></scale>
。这将使形状在增长时保持其形状-而不是被切断。不幸的是,它在开始时会有一点不想要的视觉效果-因为形状角没有足够的空间来绘制。但它可能对大多数情况足够好。qvtsj1bj2#
通过"材料组件库",可以使用**
LinearProgressIndicator
和app:trackCornerRadius
**属性。比如:
它也适用于删除
android:indeterminate="true"
或使用android:indeterminate="false"
的确定进度指示器1.3.0
**。njthzxwz3#
感谢Georgi Koemdzhiev提出了一个很好的问题和图片。对于那些想制作类似他的作品的人,请做以下操作。
1)为
ProgressBar
创建背景。进度条背景.xml:
2)为
ProgressBar
创建比例。曲线进度条.xml:
3)在布局文件中添加
ProgressBar
。fivyi3re4#
您可以实现进度条与内部进度颜色,边框颜色,空进度与透明颜色.
sdnqo3pr5#
xriantvc6#
在build.gradle(模块)实施
'com.google.android.material:material:1.6.0'
中添加材料依赖项返回到activity_main.xml。添加
希望它能做你的工作。
at0kjp5o7#
您可以使用Drawable创建自定义
progressbar
。1)将第一个可绘制对象创建为
custom_progress_bar_horizontal.xml
2)在
style.xml
文件中创建样式。3)在项目中的任何位置使用。
输出:-