HarmonyOS实战—点击更换随机图片
2023-02-26 10:18:47 时间
单击随机更换图片
- 点击按钮就会更换一张图片
实现案例:
(福利推荐:阿里云、腾讯云、华为云服务器最新限时优惠活动,云服务器1核2G仅88元/年、2核4G仅698元/3年,点击这里立即抢购>>>)
- 新建项目:
ImageSwitchApplication
思路分析:
- 准备好几张图片复制到 media 中
- 如果要获取
text
文本里面的汉字就可以使用资源管理器,但是现在不需要图片里的每个字节,要的是图片的整体,就不需要用资源管理器去读了,直接用ResourceTable
来获取就行了 - 存储图片使用集合更方便,因为图片可能有很多张,数组还要确定长度,有点不方便,所以用集合
- 可以看到图片是
int
类型的,所以集合用Integer
- 在
onClick
方法当中要用到img
组件对象、还要创建的集合对象,所以要把这两者定为成员变量,onClick
方法才能使用
代码实现:
ability_main
<?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"> <Image ohos:id="$+id:img" ohos:height="match_content" ohos:width="match_content"> </Image> <Button ohos:id="$+id:but1" ohos:height="match_content" ohos:width="match_content" ohos:text="点我" ohos:text_size="150" ohos:background_element="red" > </Button> </DirectionalLayout>
MainAbilitySlice
package com.xdr630.imageswitchapplication.slice; import com.xdr630.imageswitchapplication.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.Button; import ohos.agp.components.Component; import ohos.agp.components.Image; import java.util.ArrayList; import java.util.Random; public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener { ArrayList<Integer> list = new ArrayList<>(); Image img; @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_main); //定义一个数组或者集合来存储所有图片 list.add(ResourceTable.Media_girl1); list.add(ResourceTable.Media_girl2); list.add(ResourceTable.Media_girl3); list.add(ResourceTable.Media_girl4); list.add(ResourceTable.Media_girl5); list.add(ResourceTable.Media_girl6); list.add(ResourceTable.Media_girl7); list.add(ResourceTable.Media_girl8); list.add(ResourceTable.Media_girl9); //找到组件 img = (Image) findComponentById(ResourceTable.Id_img); Button but1 = (Button) findComponentById(ResourceTable.Id_but1); //给按钮绑定单击事件 but1.setClickedListener(this); } @Override public void onActive() { super.onActive(); } @Override public void onForeground(Intent intent) { super.onForeground(intent); } @Override public void onClick(Component component) { //当按钮被点击之后,需要修改图片的内容 Random r = new Random(); int index = r.nextInt(list.size()); //通过随机索引,可以获取随机元素 int randomImg = list.get(index); //把获取到的随机图片设置给Image组件就可以了 img.setImageAndDecodeBounds(randomImg); } }
- 运行:
- 也可以进一步扩展:点击图片时就可以查看详细信息。
你还在原价购买阿里云、腾讯云、华为云、天翼云产品?那就亏大啦!现在申请成为四大品牌云厂商VIP用户,可以3折优惠价购买云服务器等云产品,并且可享四大云服务商产品终身VIP优惠价,还等什么?赶紧点击下面对应链接免费申请VIP客户吧:
相关文章
- Jgit的使用笔记
- 利用Github Action实现Tornadofx/JavaFx打包
- 叹息!GitHub Trending 即将成为历史!
- 微软软了?开源社区讨论炸锅,GitHub CEO 亲自来答
- GitHub Trending 列表频现重复项,前后端都没去重?
- Photoshop Elements 2021版本软件安装教程(mac+windows全版本都有)
- (ps全版本)Photoshop 2020的安装与破解教程(mac+windows全版本都有)
- (ps全版本)Photoshop cc2018的安装与破解教程(mac+windows全版本,包括2023
- 环境搭建:Oracle GoldenGate 大数据迁移到 Redshift/Flat file/Flume/Kafka测试流程
- 每个开发人员都要掌握的:最小 Linux 基础课
- 来撸羊毛了!Windows 环境下 Hexo 博客搭建,并部署到 GitHub Pages
- 超实用!手把手入门 MongoDB:这些坑点请一定远离
- 【GitHub日报】22-10-09 zustand、neovim、webtorrent、express 等4款App今日上新
- 【GitHub日报】22-10-10 brew、minio、vite、seaweedfs、dbeaver 等8款App今日上新
- 【GitHub日报】22-10-11 cobra、grafana、vue、ToolJet、redwood 等13款App今日上新
- Photoshop 2018 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2017 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2020 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2023 资源免费下载(mac+windows全版本都有,包括最新的2023)
- 最新版本Photoshop CC2018软件安装教程(mac+windows全版本都有,包括2023