【问题标题】:How to set a drawable shape in android:progressDrawable in seekbar (shape size deceresed in <21 api and incresed in >=21 api)如何在 android:progressDrawable 中设置可绘制形状(在 <21 api 中减小形状大小并在 >=21 api 中增加)
【发布时间】:2016-06-03 06:50:39
【问题描述】:

我有一个视图(Seekbar),我在其中设置了一个名为 seek_bar.xml in progressDrawable 的可绘制形状,但是当我在不同级别的 api 中运行布局时得到不同的结果。意味着当我在 =21 时,形状大小似乎很完美,请帮助我如何解决此布局的这个 api 级别问题。查看图片。

我的 appcompct 版本是。

compile 'com.android.support:appcompat-v7:23.1.1'

我有一个名为 confirm.xml 的视图代码看起来像

    <LinearLayout
    android:layout_centerInParent="true"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/dialog_background"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:id="@+id/txt_dia"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="40dp"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="@string/dialog_title_logout"
        android:textColor="@color/gray_dark"
        android:textSize="@dimen/dialog_text_title"
        android:textStyle="bold"
        >
    </TextView>

    <RelativeLayout
        android:id="@+id/yes_no_back_strip"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:layout_below="@+id/swipe_btn"
        android:layout_marginBottom="15dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        >

        <SeekBar
            android:id="@+id/unlockButton"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clickable="false"
            android:max="100"
            android:progress="50"
            android:thumb="@drawable/slide_thumb"
            android:splitTrack="false"
            android:paddingLeft="1dp"
            android:paddingRight="1dp"
            android:thumbOffset="1dp"
            android:paddingTop="5dp"
            android:paddingBottom="5dp"
            android:progressDrawable="@drawable/seek_bar"
            />

        <LinearLayout
            android:id="@+id/yes_no_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal"
            android:visibility="visible"
            >

            <TextView
                android:id="@+id/confirm_btn"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_centerVertical="true"
                android:layout_gravity="center"
                android:layout_weight="1"
                android:gravity="left|center_vertical"
                android:paddingLeft="15dp"
                android:text="@string/btn_txt_yes"
                android:textColor="@color/gray_light_high"
                android:textSize="@dimen/common_text_size"
                android:textStyle="bold"
                />

            <TextView
                android:id="@+id/cancel_btn"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_centerVertical="true"
                android:layout_gravity="center"
                android:layout_weight="1"
                android:gravity="right|center_vertical"
                android:paddingRight="15dp"
                android:text="@string/btn_txt_no"
                android:textColor="@color/gray_light_high"
                android:textSize="@dimen/common_text_size"
                android:textStyle="bold"
                />
        </LinearLayout>

    </RelativeLayout>

</LinearLayout>

我的 seek_bar.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>

            <gradient
                android:angle="0"
                android:startColor="#ffe0db"
                android:centerColor="#aeff6960"
                android:endColor="#ff0002"
                />
            <corners android:radius="35dip" />
            <size android:height="49dp"
                  android:width="190dp"/>
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip >
            <shape>
                <gradient
                    android:angle="0"
                    android:startColor="#0b6e07"
                    android:centerColor="#75ba70"
                    android:endColor="#97ba93"
                   />
                <corners android:radius="35dp"
                    />
                <size android:height="49dp"
                      android:width="190dp"/>
            </shape>
        </clip>
    </item>
</layer-list>

【问题讨论】:

    标签: android android-layout xml-drawable


    【解决方案1】:

    在 api 级别 >20 android:width 和 android:height 不适用于形状,我的意思是它可以根据视图自动检测正确的高度和宽度,但当您使用 api 级别

    <Seekbar
        .....
        android:minHeight="50dp"
        android:maxHeight="50dp"
        ....
     />
    

    【讨论】:

    • 非常感谢。找了 10 个小时。
    【解决方案2】:

    希望这对所有 API 都有帮助:

    <Seekbar
        .....
        android:background="@null"
        android:splitTrack="false"
        ....
     />
    

    【讨论】:

    • 其实问题出在 android:progressDrawable 不在 android:background
    猜你喜欢
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    相关资源
    最近更新 更多