Switch开关大调节和提示文字样式调节

简述

Android Studio 中xml提供的原生Switch是比较小的。
如果想要改变其大小该怎么办?

可以通过通用属性来修改其大小

		android:scaleX="1.5"
		android:scaleY="1.5"

scaleX改变横轴水平方向,参数相当于放大倍数
scaleY改变纵轴垂直方向,参数相当于放大倍数

放大

细节

注意一个问题:直接放大后会出现一个问题,开关可能会出现位置偏移,甚至超出盒子大小,然后消失的情况。

超出盒子大小
有时候盒子过大,他就会直接消失,不要慌张,他只是因为偏移完全超出了盒子,这时候通过加边距的方法调回中间即可。

调节居中

    android:paddingEnd="22dp"
    android:switchMinWidth="50dp"

paddingEnd是设置右边距,switchMinWidth设置最小宽度,可以调节开关宽度。

其他

        android:showText="true"

设置开关是否显示提示文字

        android:textOff="OFF"
        android:textOn="ON"

设置开关上的提示文字内容,自定义。
设置提示文字
存在另一个问题,文字样式的问题,超出了开关,观感不佳。

解决办法

     android:switchTextAppearance="@style/myTextAppearance"

设置提示文字样式,样式需要自己添加文件。

在工程目录下,values下建立style.xml文件,写入文件样式。

开关文字样式
详细代码

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name = "myTextAppearance" parent="@style/TextAppearance.AppCompat.Widget.Switch">
        <item name="android:textSize">10sp</item>
        <item name="android:textColor">@color/teal_700</item>
    </style>
</resources>

可以设置文字大小,颜色等属性。

效果如下:
整体效果
最后一个使能属性

android:enabled="true"

默认是使能的,也可以设置 false ,失能的时候无法使用,为灰色,一般结合java开发时使用。

整体xml代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

<Switch
    android:enabled="true"
    android:layout_marginTop="100dp"
    android:layout_gravity="center"
    android:gravity="center"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:scaleX="2"
    android:scaleY="2"
    android:paddingEnd="22dp"
    android:switchMinWidth="50dp"
    android:textOff="OFF"
    android:textOn="ON"
    android:showText="true"
    android:switchTextAppearance="@style/myTextAppearance"
    tools:ignore="UseSwitchCompatOrMaterialXml" />

</LinearLayout>

tools:ignore=“UseSwitchCompatOrMaterialXml”

加这个话就是有点强迫症,不想看到一片黄色。

觉得还行,可以赏个赞

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值