当前位置: 首页>编程语言>正文

Android 鸿蒙 BluetoothGatt 鸿蒙系统蓝牙开关在哪

导语:大家好,我是你们的朋友 朋哥,最近开发鸿蒙多了有很多发现,鸿蒙不仅在系统层面做了很多用户体验优化,应用层也做了很大的优化,对于开发者,鸿蒙做了很多提供给开发者的便利,后面一一道来。

上一篇原创文章  解析了 复选框 Chexkbox的功能和用法。也把这个功能用到了鸿蒙开发的知乎登录页面。

各位尽快学习,后面更新会比较快了,现在是为了给新学习的一点事件来敢。

好了,来说一下今天的重点......
 

Android 鸿蒙 BluetoothGatt 鸿蒙系统蓝牙开关在哪,Android 鸿蒙 BluetoothGatt 鸿蒙系统蓝牙开关在哪_鸿蒙应用,第1张

下面我们开始今天的文章,还是老规矩,通过如下几点来说:
 

1,简介 
2,用到的属性 
3,实战

简介

Switch是一个可以在两种状态切换的开关控件。只有开关两种状态。

一般引用在手机应用的设置界面 做一些开关操作,或者某一个功能的开关操作。

用到的属性

Switch的共有XML属性还是继承自:Text

属性名称

中文描述

使用案例

text_state_on

开启时显示的文本

ohos:text_state_on="联系"

text_state_off

关闭时显示的文本

ohos:text_state_off="联系"

track_element

轨迹样式

ohos:track_element="#FF0000FF"

ohos:track_element="$color:black"

ohos:track_element="$media:media_src"

ohos:track_element="$graphic:graphic_src"

thumb_element

thumb样式

ohos:thumb_element="#FF0000FF"

ohos:thumb_element="$color:black"

ohos:thumb_element="$media:media_src"

ohos:thumb_element="$graphic:graphic_src"

marked

当前状态

ohos:marked="true"

ohos:marked="$boolean:true"

check_element

状态标志样式

ohos:check_element="#000000"

ohos:check_element="$color:black"

ohos:check_element="$media:media_src"

ohos:check_element="$graphic:graphic_src"

属性中 有两个比较重要 :
text_state_on // 开启显示的文本
text_state_off //关闭显示的文本

实战

先来创建一个基本的开关试试把。
1,开关默认效果

<Switch
    ohos:id="$+id:switch_opt"
    ohos:height="match_content"
    ohos:width="match_content"
    ohos:text_state_off="关闭"
    ohos:text_state_on="开启"
    ohos:padding="5vp"
    ohos:text_size="16fp"
    />

1,默认效果 添加了 几个属性,开启和关闭文字,字体大小

查看一下效果:
 

Android 鸿蒙 BluetoothGatt 鸿蒙系统蓝牙开关在哪,Android 鸿蒙 BluetoothGatt 鸿蒙系统蓝牙开关在哪_移动开发_02,第2张

2,设置背景样式

ShapeElement elementThumbOn = new ShapeElement();
elementThumbOn.setShape(ShapeElement.OVAL);
elementThumbOn.setRgbColor(RgbColor.fromArgbInt(0xFF1E90FF));
elementThumbOn.setCornerRadius(50);

1,设置背景演示和圆角

3,设置背景状态

// 滑块样式的设置
private StateElement trackElementInit(ShapeElement on, ShapeElement off){
    StateElement trackElement = new StateElement();
    trackElement.addState(new int[]{ComponentState.COMPONENT_STATE_CHECKED}, on);
    trackElement.addState(new int[]{ComponentState.COMPONENT_STATE_EMPTY}, off);
    return trackElement;
}

1. 设置状态,状态是两种背景样式设置的切换

完整代码:

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:alignment="center"
    ohos:orientation="vertical">

    <Switch
        ohos:id="$+id:switch_opt"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:text_state_off="关闭"
        ohos:text_state_on="开启"
        ohos:padding="5vp"
        ohos:text_size="16fp"
        />

</DirectionalLayout>

代码逻辑:

package com.example.aswitch.slice;

import com.example.aswitch.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.colors.RgbColor;
import ohos.agp.components.ComponentState;
import ohos.agp.components.Switch;
import ohos.agp.components.element.ShapeElement;
import ohos.agp.components.element.StateElement;

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);

        // 开启状态下滑块的样式
        ShapeElement elementThumbOn = new ShapeElement();
        elementThumbOn.setShape(ShapeElement.OVAL);
        elementThumbOn.setRgbColor(RgbColor.fromArgbInt(0xFF1E90FF));
        elementThumbOn.setCornerRadius(50);

        // 关闭状态下滑块的样式
        ShapeElement elementThumbOff = new ShapeElement();
        elementThumbOff.setShape(ShapeElement.OVAL);
        elementThumbOff.setRgbColor(RgbColor.fromArgbInt(0xFFFFFFFF));
        elementThumbOff.setCornerRadius(50);

        // 开启状态下轨迹样式
        ShapeElement elementTrackOn = new ShapeElement();
        elementTrackOn.setShape(ShapeElement.RECTANGLE);
        elementTrackOn.setRgbColor(RgbColor.fromArgbInt(0xFF87CEFA));
        elementTrackOn.setCornerRadius(50);

        // 关闭状态下轨迹样式
        ShapeElement elementTrackOff = new ShapeElement();
        elementTrackOff.setShape(ShapeElement.RECTANGLE);
        elementTrackOff.setRgbColor(RgbColor.fromArgbInt(0xFF808080));
        elementTrackOff.setCornerRadius(50);


        // 设置切换属性
        Switch btnSwitch = (Switch) findComponentById(ResourceTable.Id_switch_opt);
        btnSwitch.setTrackElement(trackElementInit(elementTrackOn, elementTrackOff));
        btnSwitch.setThumbElement(thumbElementInit(elementThumbOn, elementThumbOff));
    }

    // 滑块样式的设置
    private StateElement trackElementInit(ShapeElement on, ShapeElement off){
        StateElement trackElement = new StateElement();
        trackElement.addState(new int[]{ComponentState.COMPONENT_STATE_CHECKED}, on);
        trackElement.addState(new int[]{ComponentState.COMPONENT_STATE_EMPTY}, off);
        return trackElement;
    }
    // 轨迹样式的设置
    private StateElement thumbElementInit(ShapeElement on, ShapeElement off) {
        StateElement thumbElement = new StateElement();
        thumbElement.addState(new int[]{ComponentState.COMPONENT_STATE_CHECKED}, on);
        thumbElement.addState(new int[]{ComponentState.COMPONENT_STATE_EMPTY}, off);
        return thumbElement;
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

https://www.xamrdz.com/lan/5ny1934127.html

相关文章: