自定义Android切换轨道“animation”

我已经创build了一个基本的自定义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> 

这个开关的外观和工作方式大部分都是按照预定的方式进行的,但是有什么方法可以在用户拖动的同时拇指在其上方移动时对轨道进行“animation处理”? 或者在选中或取消选中之间淡入淡出,或者最好在拇指后面改变。

当前行为如下所示。

目前的行为

Solutions Collecting From Web of "自定义Android切换轨道“animation”"

有一段时间,当我需要一个类似于本机iOS的切换buttonfunction时,我也在寻找相同的function,可以将其拖放到我的一个项目的开/关中。 那时候我努力search,我find了这个库。

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

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

一个开关是一个双状态切换开关小部件,可以select两个选项。 用户可以前后拖动“拇指”来select所选的选项,或者只需点击切换,就好像它是一个checkbox。 text属性控制开关标签中显示的文本,而off和on文本控制着拇指上的文本。

对于这个要求,你需要定制你的Switchbuttonfunction

您可以访问演示

  1. 滑动切换为Android

  2. Android的开关演示前4.0

  3. Android应用程序的自定义切换button

你需要明白下面两行。

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

它有两个标签: android:thumb and android:track当我们滑动或改变状态的时候,.Thumb会绘制实际的外观。

您需要进行切换button自定义

 <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> 

看到这个