如何改变进度线的高度"进度栏?

时间:2017-06-16 16:31:17

标签: java android

我可以更改"进度线的高度"在Android中的 ProgressBar 中,它比"背景线"达到这个效果?

what I want to achieve!!!

我已尝试在自定义 progressBarDrawable 的背景和进度项目上设置尺寸,但似乎无法正常工作。

<ProgressBar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:indeterminate="false"
            android:max="100"
            android:progress="50"
            android:paddingTop="10dp"
            android:paddingBottom="10dp"
            android:progressDrawable="@drawable/xml_progress_bar_line"
            style="@style/Widget.AppCompat.ProgressBar.Horizontal"/>

这是 xml_progress_bar_line.xml 文件。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <size
                android:height="5dp"/>
            <solid
                android:color="@color/grey" />
        </shape>
    </item>

    <item
        android:id="@android:id/progress">
        <clip>
            <shape>
                <size
                    android:height="10dp"/>
                <solid
                    android:color="@color/green" />
                <corners
                    android:radius="10dp"/>
            </shape>
        </clip>
    </item>
</layer-list>

3 个答案:

答案 0 :(得分:1)

layout_height@android:style/Widget.ProgressBar.Horizontal更改为彼此相等,然后明确设置mProgressBar.setScaleY(3f);

也可以尝试使用{{1}}

您还可以设置垂直比例 - {{1}}

以下是我的一个例子:This thread

https://xinyustudio.wordpress.com/2014/08/19/android-change-progressbar-height/

答案 1 :(得分:0)

我最终没有使用进度条!

我刚刚在相对布局中使用了2行。这是相应的代码!

以下是进度条背景行xml( xml_custom_progress_bar_bg.xml ):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <corners
        android:radius="4dp"/>
    <solid
        android:color="@color/light_grey"/>

</shape>

以下是进度条“进度线”xml( xml_custom_progress_bar_progress.xml ):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <corners
        android:radius="4dp"/>
    <gradient
        android:angle="270"
        android:startColor="@color/green"
        android:endColor="@color/green"/>

</shape>

这是进度条容器:

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <View
            android:layout_width="match_parent"
            android:layout_height="4dp"
            android:layout_centerVertical="true"
            android:background="@drawable/xml_custom_progress_bar_bg"/>

        <View
            android:layout_width="0dp"
            android:layout_height="8dp"
            android:layout_centerVertical="true"
            android:background="@drawable/xml_custom_progress_bar_progress"/>

    </RelativeLayout>

然后,我手动计算进度并以编程方式设置“进度线”的宽度。

答案 2 :(得分:0)

是的,您可以这样添加android:top和android:bottom来做到这一点:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background" android:top=2dp android:bottom=2dp>
    <shape>
        <size
            android:height="5dp"/>
        <solid
            android:color="@color/grey" />
    </shape>
</item>

<item
    android:id="@android:id/progress">
    <clip>
        <shape>
            <size
                android:height="10dp"/>
            <solid
                android:color="@color/green" />
            <corners
                android:radius="10dp"/>
        </shape>
    </clip>
</item>