我有麦克风图标并围绕麦克风图标,我需要放置进度条来处理下面的一些运行过程:
<ImageView
android:id="@+id/iv_mic_movable"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="68dp"
android:src="@drawable/record" />
<ProgressBar
android:id="@+id/pb_assist"
style="?android:attr/progressBarStyleLarge"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="53dp"
android:visibility="gone" />
上面的代码显示了如下UI:
我想像这样显示进度条,但这个进展非常厚。如何只用1dp使它更薄一些?
答案 0 :(得分:2)
以上所有答案均不适用于我。苦苦挣扎的人找到了一个可行的解决方案。
progressbar_circular.xml。使用android:thicknessRatio作为圆的粗细。值越大,越薄。
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="0"
android:toDegrees="360" >
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="40"
android:useLevel="false" >
<size
android:height="48dip"
android:width="48dip" />
<gradient
android:centerColor="@color/colorPrimary"
android:centerY="0.50"
android:endColor="@color/color_black"
android:startColor="@color/colorPrimary"
android:type="sweep"
android:useLevel="false" />
</shape>
</rotate>
进度栏布局如下:
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="?android:attr/progressBarStyleLarge"
android:indeterminateDrawable="@drawable/progressbar_circular"
android:layout_gravity="center_horizontal"
android:visibility="visible"/>
答案 1 :(得分:1)
这是自定义ProgressBar
。您可以在形状内设置进度厚度。
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="172dp"
android:layout_height="172dp"
android:indeterminate="false"
android:max="100"
android:visibility="visible"
android:progress="0"
android:layout_gravity="center_horizontal" //updated line
android:layout_marginTop="53dp" //updated line
android:background="@drawable/circle_shape"
android:progressDrawable="@drawable/circle_progress_foreground"
/>
<强> circle_shape.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadiusRatio="2.2"
android:thickness="5dp"
android:useLevel="false">
<solid android:color="#ABBAC2" />
</shape>
<强> circle_progress_foreground.xml 强>
根据您的要求更改android:thickness
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="270"
android:toDegrees="270">
<shape android:useLevel="true"
android:innerRadiusRatio="2.7"
android:shape="ring"
android:thickness="2dp"
xmlns:android="http://schemas.android.com/apk/res/android">
/>
<solid android:color="#fbcb09"/>
</shape>
</rotate>
答案 2 :(得分:0)
尝试在xml progessBar布局上添加以下样式,
style="@android:style/Widget.ProgressBar.Large.Inverse"
<强>更新强>
尝试添加此属性:
android:progressDrawable="@android:drawable/progress_horizontal"
答案 3 :(得分:0)
您还可以通过添加最小宽度和高度来实现此目的
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="23dp"
android:layout_marginTop="20dp"
android:indeterminate="false"
android:max="100"
android:minHeight="5dp"
android:minWidth="200dp"
android:progress="1" />