我需要一个水平进度条,在主进程的末尾有一条黑色垂直线。使用我的代码,进度条没问题,但该线始终位于进度条的中间。我尝试使用clip
但随后它就消失了,而不是出现在片段的末尾。
My code
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<corners android:radius="5dip" />
<solid android:color="#ffffffff" />
<stroke android:width="1dip" android:color="#ff000000" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dip" />
<solid android:color="#33b5e5" />
<stroke android:width="1dip" android:color="#ff000000" />
</shape>
</clip>
</item>
<item android:id="@+id/line">
<rotate android:fromDegrees="90"
android:toDegrees="90" >
<shape android:shape="line">
<stroke android:width="5dp" android:color="#ff000000"/>
</shape>
</rotate>
</item>
</layer-list>
我的问题
由于我必须向该栏添加另一个进程,因此我无法使用secondaryProgress
该行的标签。另外,线条的位置和条形的颜色有很多可能性,我不想做 10 种不同的绘图。
是否可以通过进度条实现我想要的目标,或者是否有更好的方法来实现?我搜索了有关垂直线、多色条、甚至堆叠图表的线索。但不知何故,我无法找到合适的库或简单的方法来制作进度条。
Goal
这是我最后想要的图片:
我需要垂直线来在条形中显示 100% 标记,该标记可能“超过 100%”。进度可以从左到右或从右到左显示。
我找到了一个解决方案...我从上面的代码中删除了行项目并将以下代码添加到onDraw()
method:
Paint linePaint = new Paint();
linePaint.setColor(getResources().getColor(android.R.color.black));
final float lineWidth = 5f;
linePaint.setStrokeWidth(lineWidth);
canvas.drawLine(getWidth() * m100 / 100, 0,
getWidth() * m100 / 100, getHeight(),
linePaint);
在代码中,m100
是整条线的位置。例如,如果 100% like 标记应位于条长度的 80% 处,则为 80。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)