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