Android自定义圆形ProgressBar剪辑

时间:2019-05-08 22:12:40

标签: android android-layout android-drawable

我的应用程序中有一个使用ProgressBar的浮动循环计时器。但是,如该图所示,边缘的几个像素被裁剪成正方形:problem(在某些设备上看起来更糟)

以下是相关的布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:alpha="0.85"
    xmlns:tools="http://schemas.android.com/tools">

    <ImageView
        android:id="@+id/imageView"
        android:layout_gravity="center"
        android:src="@drawable/circle_background"
        android:layout_width="50dp"
        android:layout_height="50dp"
        tools:ignore="ContentDescription" />

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_gravity="center"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:progressDrawable="@drawable/progress_circular"
        android:progress="100"/>

    <TextView
        android:id="@+id/timeTextView"
        android:layout_width="54dp"
        android:layout_height="54dp"
        android:layout_gravity="center"
        android:gravity="center"
        android:textSize="12sp" />

</FrameLayout>

还有progressDrawable

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:useLevel="true"
android:innerRadiusRatio="2.3"
android:shape="ring"
android:thickness="3.8sp" >
    <solid android:color="#ff205C" />
</shape>

无济于事,我尝试了以下各种组合:

  • FrameLayout设置为54dp
  • layout_width/height个孩子设置为fill_parent50dp54dp
  • margin设置为2dp

会喜欢任何技巧。谢谢!

2 个答案:

答案 0 :(得分:0)

尝试将一些padding设置为FrameLayout并设置clipToPadding="false"

答案 1 :(得分:0)

使用下面给出的进度可绘制对象

user_details