自定义Android切换曲目'动画'

时间:2016-01-13 11:35:57

标签: android android-layout android-drawable android-switch

我已创建了一个基本的自定义Switch,定义如下。

<Switch
        android:id="@+id/availSwitch"
        android:layout_width="wrap_content"
        android:switchMinWidth="110dp"
        android:layout_height="wrap_content"
        android:track="@drawable/switch_track"
        android:thumb="@drawable/thumb"/>

@drawable/thumb是一个简单的PNG,效果很好。

@drawable/switch_track定义如下。 @drawable/trackon@drawable/trackoff是PNG的。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="false" android:drawable="@drawable/trackoff" />
    <item android:state_checked="true"  android:drawable="@drawable/trackon" />
    <item                               android:drawable="@drawable/trackoff" />

</selector>

此开关在大多数情况下看起来和预期一样,但有一些方法可以动画“#”。用户拖动时拇指在轨道上移动的轨道?在已检查和未检查之间淡入淡出,或者最好在更改后退出&#39;拇指。

目前的行为如下所示。

Current behaviour

3 个答案:

答案 0 :(得分:5)

当我需要类似于原生iOS的切换按钮功能时,有一段时间我也在寻找相同的功能,可以将其拖动到其中一个项目的开/关。那时我搜索得很辛苦,我找到了这个图书馆。

https://github.com/pellucide/Android-Switch-Demo-pre-4.0

所以希望这也是你正在寻找的。

答案 1 :(得分:1)

  

Switch是一个双状态切换开关小部件,可以在两者之间进行选择   两种选择。用户可以拖动&#34;拇指&#34;来回选择   选中的选项,或者只需点按即可切换为复选框。   text属性控制标签中显示的文本   开关,而关闭和开启文本控制拇指上的文字。

对于此要求,您需要自定义Switch按钮功能

您可以访问演示

  1. <强> Slide Toggle for Android

  2. <强> Android-Switch-Demo-pre-4.0

  3. <强> Custom Toggle Button for Android Applications

  4. 您需要了解以下两行。

            android:thumb="@drawable/customswitchselector"
            android:track="@drawable/custom_track"
    

    它有两个标记: android:thumb and android:track 。当我们滑动或更改状态时,我会绘制实际外观。

答案 2 :(得分:0)

您需要自定义切换按钮

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/darkGray"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.gisinc.androidexamples.myapplication.MyActivity">

    <com.gisinc.androidexamples.androidtogglebutton.SettingsToggle
        xmlns:widget="http://schemas.android.com/apk/res-auto"
        android:id="@+id/settings1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        widget:prefName="useMyLocation"
        widget:text="Use My Location" />

</RelativeLayout>

请参阅this