Seekbar Progress Drawable调整大小与API 22和API 23不同

时间:2016-08-04 15:53:41

标签: java android xml android-linearlayout android-seekbar

我在我的Android应用中使用library VerticalSeekBars。在我的应用程序中,我使用LinearLayoutlayout_weight属性水平放置多个垂直搜索栏(大约10-15?)。另外,我使用的拇指应该比进度更大(基本上放在进度的顶部),并使用自定义绘制进度:

<?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:height="10dp"
              android:gravity="center_vertical">
        <shape android:shape="rectangle">
             <corners android:radius="500dp"/>
             <solid android:color="#000000"/>
        </shape>
    </item>
</layer-list>

在API 23(我认为是Marshmallow?)中,所有内容都正确排列并在不同的屏幕尺寸上正确调整大小。真棒。但是,在API 22及以下版本中,可绘制的进度不会自行调整;相反,它会增加它的大小,使搜索栏拇指适合进度。我试图在我的代码中调整drawable的大小,但是它仍然没有做任何事情。我把它画出来表明我的意思:

Picture example - excuse my poor drawing skills :(

如何获得API 22 /以下,以匹配API 23使用搜索栏实现的相同行为?

以下是我VerticalSeekBar设置的示例:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="1">

    <com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_weight="0.5">

            <com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:max="100"
                android:progress="50"
                app:seekBarRotation="CW270"
                android:progressDrawable="@drawable/custom_track"
                android:splitTrack="false"/>

    </com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper>

           <com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_weight="0.5">

            <com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:max="100"
                android:progress="50"
                app:seekBarRotation="CW270"
                android:progressDrawable="@drawable/custom_track"
                android:splitTrack="false"/>

    </com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBarWrapper>

</LinearLayout>

谢谢!

1 个答案:

答案 0 :(得分:1)

像这样设置maxHeight

<com.h6ah4i.android.widget.verticalseekbar.VerticalSeekBar
        ...
        android:maxHeight="2dp"
        .../>