android - 更改尺寸时,椭圆形(圆形)和环形可绘制对象增长不均匀
问题描述
我有一个圆形进度条,它由两个可绘制的 xml 文件组成。
--一个包含一个实心圆,外圆周加上一个环。
——另一个是上面提到的戒指。它是逐渐消失的进度条,显示如下图。
我使它与 layout_width 和 layout_height=160dp 一起工作(见图),但是当我将它放大到 260dp 时,由于某种原因,实心圆和环不再“同步”增长:两个环都保持在正确的位置,但实心圆圈增长得比它应该的多一点,创造了一个不想要的“边缘”(参见另一张图片)。
我尝试了各种尺寸和厚度的变化,innerRadius 代替了 innerRadiusRatio,还有 wrap_content、paddings ......我能想到的所有参数,但似乎没有任何效果。
我也尝试过使用圆形的 .png 作为背景,但我遇到了同样的问题:当你放大尺寸时,圆形会变得太多,从而形成一个边缘。
我确定它一定很简单,但我找不到;有谁能够帮我?任何想法将不胜感激......
相关代码:
活动主.xml:
<ProgressBar
android:id="@+id/progressBarCircle"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="260dp"
android:layout_height="260dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:background="@drawable/rosco_vacio_y_fondo"
android:indeterminate="false"
android:max="100"
android:progress="100"
android:progressDrawable="@drawable/rosco_lleno"
android:rotation="-90"
app:layout_constraintBottom_toTopOf="@+id/adView"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/contadorM"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintVertical_chainStyle="packed" />
rosco_lleno.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadiusRatio="2.3"
android:shape="ring"
android:thickness="10dp"
android:useLevel="true">
<gradient android:startColor="@color/barraLlena"
android:endColor="#701914"/>
</shape>
</item>
</layer-list>
rosco_vacio_y_fondo.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadiusRatio="2.3"
android:shape="oval"
android:useLevel="true">
<solid android:color="@color/fondoRosco" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadiusRatio="2.3"
android:shape="ring"
android:thickness="10dp"
android:useLevel="false"
>
<solid android:color="@color/roscoVacio" />
</shape>
</item>
<
解决方案
推荐阅读
- r - R - 按组 dplyr 区分值列
- java - 线程转储:停车等待是什么意思?
- javascript - 在 RegEx 匹配中使用双 bang (!!) 是否安全?
- html - 无法更改页脚的背景
- javascript - 如何将画布更改为水平而不滚动?
- python - 有没有更简单的方法来输入多个名称并相应地存储它们?
- chisel - chisel中如何自由给vec类型变量赋值?
- mnist - holoviews 不显示 PIL 图像格式
- react-native - React Native Invariant Violation 错误,但似乎没有任何问题
- linux - 在linux中打开带有特殊字符的文件