下面是我为switchcompact
应用的代码,我可以得到没有边框的代码,但我的要求是应用与下图类似的边框
mylayout.xml
<android.support.v7.widget.SwitchCompat
android:id="@+id/switch_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/switch_email"
android:visibility="invisible"
android:layout_marginRight="10dp"
android:theme="@style/SwitchStyle"/>
styles.xml
<style name="SwitchStyle" parent="Theme.AppCompat.Light">
<item name="colorControlActivated">@color/blue_action_bar</item>
<item name="colorSwitchThumbNormal">@color/white</item>
<item name="android:colorForeground">@color/gray</item>
但我需要一个类似的图像像这样
如何应用像这样的开关紧凑的边框来渲染。
1条答案
按热度按时间izkcnapc1#
我想到了这个解决方案:
1.准备两个可绘制对象用于轨道的打开和关闭状态,一个用于拇指:switch_track_on.xml
switch_track_off.xml
switch_thumb.xml
1.将SwitchCompat的轨迹设置为透明,并使用以下样式将拇指设置为可绘制:
1.将可绘制轨迹的ImageView和SwitchCompat放入RelativeLayout:
1.最后将setOnCheckedChangeListener添加到SwitchCompat,并根据isChecked值动画跟踪ImageViews alpha值。