1# 弧形按钮 (ArcButton) 2 3 4ArcButton是弧形按钮组件,用于圆形屏幕使用。为手表用户提供强调、普通、警告等样式按钮。具体用法请参考[ArcButton](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md)。 5 6 7## 创建按钮 8 9ArcButton通过调用以下接口来创建。 10 11 ```ts 12ArcButton({ 13 options: new ArcButtonOptions({ 14 label: 'OK', 15 position: ArcButtonPosition.TOP_EDGE, 16 styleMode: ArcButtonStyleMode.EMPHASIZED_LIGHT 17 }) 18}) 19 ``` 20 21 其中,[label](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md#arcbuttonoptions)设置按钮文字,[position](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md#arcbuttonoptions)设置按钮类型,[styleMode](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md#arcbuttonoptions)设置按钮样式。 22 23  24 25## 设置按钮类型 26 27ArcButton有上弧形按钮和下弧形按钮两种类型。使用[position](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md#arcbuttonoptions)设置按钮类型。 28 29- 下弧形按钮(默认类型)。 30 31 通过将[position](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md#arcbuttonoptions)属性设置为ArcButtonPosition.BOTTOM_EDGE,可以将按钮设置为下弧形按钮。 32 33 ```ts 34 ArcButton({ 35 options: new ArcButtonOptions({ 36 label: 'OK', 37 position: ArcButtonPosition.BOTTOM_EDGE, 38 styleMode: ArcButtonStyleMode.EMPHASIZED_LIGHT 39 }) 40 }) 41 ``` 42 43  44 45- 上弧形按钮。 46 47 通过将[position](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md#arcbuttonoptions)属性设置为ArcButtonPosition.TOP_EDGE,可以将按钮设置为上弧形按钮。 48 49 ```ts 50 ArcButton({ 51 options: new ArcButtonOptions({ 52 label: 'OK', 53 position: ArcButtonPosition.TOP_EDGE, 54 styleMode: ArcButtonStyleMode.EMPHASIZED_LIGHT 55 }) 56 }) 57 ``` 58 59  60 61## 自定义样式 62 63- 设置背景色。 64 65 使用[backgroundColor](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md#arcbuttonoptions)属性设置按钮的背景色。 66 67 ```ts 68 ArcButton({ 69 options: new ArcButtonOptions({ 70 label: 'OK', 71 styleMode: ArcButtonStyleMode.CUSTOM, 72 backgroundColor: ColorMetrics.resourceColor('#707070') 73 }) 74 }) 75 ``` 76 77  78 79- 设置文本颜色。 80 81 使用[fontColor](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md#arcbuttonoptions)属性设置按钮的文本颜色。 82 83 ```ts 84 ArcButton({ 85 options: new ArcButtonOptions({ 86 label: 'OK', 87 styleMode: ArcButtonStyleMode.CUSTOM, 88 backgroundColor: ColorMetrics.resourceColor('#E84026'), 89 fontColor: ColorMetrics.resourceColor('#707070') 90 }) 91 }) 92 ``` 93 94  95 96- 设置阴影颜色。 97 98 使用[shadowEnabled](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md#arcbuttonoptions)属性启用按钮阴影,并通过[shadowColor](../reference/apis-arkui/arkui-ts/ohos-arkui-advanced-ArcButton.md#arcbuttonoptions)属性设置按钮的阴影颜色。 99 100 ```ts 101 ArcButton({ 102 options: new ArcButtonOptions({ 103 label: 'OK', 104 shadowEnabled: true, 105 shadowColor: ColorMetrics.resourceColor('#ffec1022') 106 }) 107 }) 108 ``` 109 110  111 112## 添加事件 113 114- 绑定onClick事件来响应点击操作后的自定义行为。 115 116 ```ts 117 ArcButton({ 118 options: new ArcButtonOptions({ 119 label: 'OK', 120 onClick: () => { 121 console.info('ArcButton onClick') 122 } 123 }) 124 }) 125 ``` 126 127- 绑定onTouch事件来响应触摸操作后的自定义行为。 128 129 ```ts 130 ArcButton({ 131 options: new ArcButtonOptions({ 132 label: 'OK', 133 onTouch: (event: TouchEvent) => { 134 console.info('ArcButton onTouch') 135 } 136 }) 137 }) 138 ``` 139 140## 场景示例 141 142 在亮度设置界面,进度条显示当前亮度为30%。点击重置后,亮度值将被重置为默认的50%。 143 144 ```ts 145import { LengthMetrics, LengthUnit, ArcButton, ArcButtonOptions, ArcButtonStyleMode } from '@kit.ArkUI'; 146 147@Entry 148@ComponentV2 149struct BrightnessPage { 150 @Local brightnessValue: number = 30 151 private defaultBrightnessValue: number = 50 152 153 build() { 154 RelativeContainer() { 155 Text('设置亮度') 156 .fontColor(Color.White) 157 .id('id_brightness_set_text') 158 .fontSize(24) 159 .margin({ top: 16 }) 160 .alignRules({ 161 middle: { anchor: '__container__', align: HorizontalAlign.Center } 162 }) 163 164 Text(`${this.brightnessValue} %`) 165 .fontColor(Color.White) 166 .id('id_brightness_min_text') 167 .margin({ left: 16 }) 168 .alignRules({ 169 start: { anchor: '__container__', align: HorizontalAlign.Start }, 170 center: { anchor: '__container__', align: VerticalAlign.Center } 171 }) 172 173 Slider({ 174 value: this.brightnessValue, 175 min: 0, 176 max: 100, 177 style: SliderStyle.InSet 178 }) 179 .blockColor('#191970') 180 .trackColor('#ADD8E6') 181 .selectedColor('#4169E1') 182 .width(150) 183 .id('id_brightness_slider') 184 .margin({ left: 16, right: 16 }) 185 .onChange((value: number, mode: SliderChangeMode) => { 186 this.brightnessValue = value 187 }) 188 .alignRules({ 189 center: { anchor: 'id_brightness_min_text', align: VerticalAlign.Center }, 190 start: { anchor: 'id_brightness_min_text', align: HorizontalAlign.End }, 191 end: { anchor: 'id_brightness_max_text', align: HorizontalAlign.Start } 192 }) 193 194 ArcButton({ 195 options: new ArcButtonOptions({ 196 label: '重置', 197 styleMode: ArcButtonStyleMode.EMPHASIZED_LIGHT, 198 fontSize: new LengthMetrics(19, LengthUnit.FP), 199 onClick: () => { 200 this.brightnessValue = this.defaultBrightnessValue 201 } 202 }) 203 }) 204 .alignRules({ 205 middle: { anchor: '__container__', align: HorizontalAlign.Center }, 206 bottom: { anchor: '__container__', align: VerticalAlign.Bottom } 207 }) 208 } 209 .height('100%') 210 .width('100%') 211 .backgroundColor(Color.Black) 212 } 213} 214 ``` 215 216 