HarmonyOS鸿蒙最新鸿蒙HarmonyOS APP开发入门3——组件(九 按钮组件 )(1) ...

王柳  金牌会员 | 2024-10-12 09:03:38 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 822|帖子 822|积分 2466

深知大多数步伐员,想要提升技能,往往是本身摸索发展,但本身不成体系的自学结果低效又漫长,而且极易碰到天花板技术故步自封!



既有适合小白学习的零底子资料,也有适合3年以上履历的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,而且后续会持续更新
需要这份系统化的资料的朋友,可以戳这里获取
Button是一种常见的组件,点击可以触发对应的操作,通常由文本或图标组成,也可以由图标和文本共同组成。我们在开发中最常用到的一个组件。
创建Button

在layout目录下的xml文件中创建Button,并设置按钮的配景形状、颜色。
常用的配景如文本配景、按钮配景,通常采用XML格式放置在graphic目录下。
  1. <Button
  2. ohos:id="$+id:button"
  3. ohos:width="match\_content"
  4. ohos:height="match\_content"
  5. ohos:text\_size="27fp"
  6. ohos:text="button"
  7. ohos:background\_element="$graphic:background\_button"
  8. ohos:left\_margin="15vp"
  9. ohos:bottom\_margin="15vp"
  10. ohos:right\_padding="8vp"
  11. ohos:left\_padding="8vp"
  12. ohos:element\_left="$media:ic\_btn\_reload"
  13. />
复制代码
在Project窗口,打开“entry > src > main > resources > base > media”,拖动所需图片文件添加至media目录下。
在Project窗口,打开“entry > src > main > resources > base”,右键点击“graphic”文件夹,选择“New > File”,定名为“background_button.xml”,在该文件中定义按钮的配景形状、颜色。
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:ohos="http://schemas.huawei.com/res/ohos"
  3. ohos:shape="rectangle">
  4.     <corners
  5. ohos:radius="10"/>
  6.     <solid
  7. ohos:color="#007CFD"/>
  8. </shape>
复制代码
响应点击变乱

按钮的紧张作用是当用户单击按钮时,会实验相应的操作或者界面出现相应的变革。实际上用户点击按钮时,Button对象将收到一个点击变乱。开发者可以自定义响应点击变乱的方法。比方,通过创建一个Component.ClickedListener对象,然后通过调用setClickedListener将其分配给按钮。
  1. Button button = (Button) findComponentById(ResourceTable.Id\_button);
  2. // 为按钮设置点击事件回调
  3. button.setClickedListener(new Component.ClickedListener() {   
  4.     @Override   
  5.     public void onClick(Component component) {     
  6.         // 此处添加点击按钮后的事件处理逻辑
  7.     }
  8. });
复制代码
差别类型的按钮

按照按钮的形状,按钮可以分为:平凡按钮、椭圆按钮、胶囊按钮、圆形按钮等。
平凡按钮


平凡按钮和其他按钮的区别在于不需要设置任何形状,只设置文本和配景颜色即可,比方:
  1. <Button
  2. ohos:width="150vp"
  3. ohos:height="50vp"
  4. ohos:text\_size="27fp"
  5. ohos:text="button"
  6. ohos:background\_element="$graphic:color\_blue\_element"
  7. ohos:left\_margin="15vp"
  8. ohos:bottom\_margin="15vp"
  9. ohos:right\_padding="8vp"
  10. ohos:left\_padding="8vp"/>
复制代码
graphic目录下的color_blue_element.xml文件示比方下:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:ohos="http://schemas.huawei.com/res/ohos"
  3. ohos:shape="rectangle">   
  4.     <solid ohos:color="#007CFD"/>
  5. </shape>
复制代码
椭圆按钮


椭圆按钮是通过设置background_element的来实现的,background_element的shape设置为椭圆(oval),比方:
  1. <Button ohos:width="150vp"
  2. ohos:height="50vp"
  3. ohos:text\_size="27fp"
  4. ohos:text="button"
  5. ohos:background\_element="$graphic:oval\_button\_element"
  6. ohos:left\_margin="15vp"
  7. ohos:bottom\_margin="15vp"
  8. ohos:right\_padding="8vp"
  9. ohos:left\_padding="8vp"
  10. ohos:element\_left="$media:ic\_btn\_reload"/>
复制代码
graphic目录下的oval_button_element.xml文件示比方下:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:ohos="http://schemas.huawei.com/res/ohos"
  3. ohos:shape="oval">   
  4.     <solid ohos:color="#007CFD"/>
  5. </shape>
复制代码
胶囊按钮


胶囊按钮是一种常见的按钮,设置按钮配景时将配景设置为矩形形状,而且设置ShapeElement的radius的半径,比方:
  1. <Button ohos:id="$+id:button"
  2. ohos:width="match\_content"
  3. ohos:height="match\_content"
  4. ohos:text\_size="27fp"
  5. ohos:text="button"
  6. ohos:background\_element="$graphic:capsule\_button\_element"
  7. ohos:left\_margin="15vp"
  8. ohos:bottom\_margin="15vp"
  9. ohos:right\_padding="15vp"
  10. ohos:left\_padding="15vp"/>
复制代码
graphic目录下的capsule_button_element.xml文件示比方下:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:ohos="http://schemas.huawei.com/res/ohos"
  3. ohos:shape="rectangle">   
  4.     <corners ohos:radius="100"/>
  5.     <solid ohos:color="#007CFD"/>
  6. </shape>
复制代码
圆形按钮


圆形按钮和椭圆按钮的区别在于组件本身的宽度和高度需要雷同,比方:
  1. <Button
  2. ohos:id="$+id:button"
  3. ohos:width="50vp"
  4. ohos:height="50vp"
  5. ohos:text\_size="27fp"
  6. ohos:background\_element="$graphic:circle\_button\_element"
  7. ohos:text="+" ohos:left\_margin="15vp"
  8. ohos:bottom\_margin="15vp"
  9. ohos:right\_padding="15vp"
  10. ohos:left\_padding="15vp"/>
复制代码
graphic目录下的circle_button_element.xml文件示比方下:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:ohos="http://schemas.huawei.com/res/ohos"
  3. ohos:shape="oval">   
  4.     <solid ohos:color="#007CFD"/>
  5. </shape>
复制代码
场景示例

利用圆形按钮,胶囊按钮,文本组件可以绘制出如下拨号盘的UI界面。
**图4 界面结果

源码示例:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <DirectionalLayout
  3. xmlns:ohos="http://schemas.huawei.com/res/ohos"
  4. ohos:width="match\_parent"
  5. ohos:height="match\_parent"
  6. ohos:background\_element="$graphic:color\_light\_gray\_element"
  7. ohos:orientation="vertical">
  8.     <Text
  9. ohos:width="match\_content"
  10. ohos:height="match\_content"
  11. ohos:text\_size="20fp"
  12. ohos:text="0123456789"
  13. ohos:background\_element="$graphic:green\_text\_element"
  14. ohos:text\_alignment="center"
  15. ohos:layout\_alignment="horizontal\_center"
  16. />
  17.     <DirectionalLayout
  18. ohos:width="match\_parent"
  19. ohos:height="match\_content"
  20. ohos:alignment="horizontal\_center"
  21. ohos:orientation="horizontal"
  22. ohos:top\_margin="5vp"
  23. ohos:bottom\_margin="5vp">
  24.         <Button
  25. ohos:width="40vp"
  26. ohos:height="40vp"
  27. ohos:text\_size="15fp"
  28. ohos:background\_element="$graphic:green\_circle\_button\_element"
  29. ohos:text="1"
  30. ohos:text\_alignment="center"
  31. />
  32.         <Button
  33. ohos:width="40vp"
  34. ohos:height="40vp"
  35. ohos:text\_size="15fp"
  36. ohos:background\_element="$graphic:green\_circle\_button\_element"
  37. ohos:text="2"
  38. ohos:left\_margin="5vp"
  39. ohos:right\_margin="5vp"
  40. ohos:text\_alignment="center"
  41. />
  42.         <Button
  43. ohos:width="40vp"
  44. ohos:height="40vp"
  45. ohos:text\_size="15fp"
  46. ohos:background\_element="$graphic:green\_circle\_button\_element"
  47. ohos:text="3"
  48. ohos:text\_alignment="center"
  49. />
  50.     </DirectionalLayout>
  51.     <DirectionalLayout
  52. ohos:width="match\_parent"
  53. ohos:height="match\_content"
  54. ohos:alignment="horizontal\_center"
  55. ohos:orientation="horizontal"
  56. ohos:bottom\_margin="5vp">
  57.         <Button
  58. ohos:width="40vp"
  59. ohos:height="40vp"
  60. ohos:text\_size="15fp"
  61. ohos:background\_element="$graphic:green\_circle\_button\_element"
  62. ohos:text="4"
  63. ohos:text\_alignment="center"
  64. />
  65. **深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
  66. ![](https://i-blog.csdnimg.cn/blog_migrate/1e210328c1ebf43f08d3b6c5f5c13b48.png)
  67. ![img](https://img-blog.csdnimg.cn/img_convert/8a0aec165c32c1ba131f44b3f70d52d9.png)
  68. ![img](https://img-blog.csdnimg.cn/img_convert/62b356127464f5c061769534bb8700b8.png)
  69. **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!**
  70. **由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
  71. **[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**
  72. 668910224b259a5ffe804fa6d0db.png)
  73. [外链图片转存中...(img-F5Ag2ikp-1715889328634)]
  74. [外链图片转存中...(img-z4FAOGuZ-1715889328634)]
  75. **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!**
  76. **由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
  77. **[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王柳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表