安卓学习笔记之四:Android Studio_骰子案例2(kotlin版本)

本文介绍了如何在Android项目中改进骰子应用,添加骰子图片,使用if和when语句控制显示,以及优化代码以使用资源引用。开发者学习了如何导入图片,配置ImageView,以及将字符串转换为资源。

上一个骰子案例,只是随机产生1~6的数字。这里对其稍作改进,增加骰子1~6点数图片,并练习if 和when。

导入可绘制对象

选中主活动页面布局文件activity_main.xml,打开资源管理器(Resource Manager) 导入(+)可绘制对象(Import Drawables) 

这里有六个图片,分别对应骰子的1~6点数。

这六个图片文件事先做好,找到对应的目录,直接导入即可 

在项目视图上看到增加了6个图片文件在res->drawable目录下:

 添加图片视图到指定位置

选择第一张图片

配置其属性参数:

在按钮下方增加文本“lucky number”

当按钮点出6点时出现,适当调整其位置大小(这里选用24dp),删除其文本,工具文本设置为lucky number,其ID为textView2。

更新滚动骰子方法rollDice() 代码

定义一个图片变量luckyTextView,通过findViewById() 找到它。定义一个幸运数字变量LuckNumber =6,当随机数字等于幸运数字6,文本显示“Lucky Number”。

仿真效果:

文本 “Lucky Number”会和幸运数字6同时出现,但之后不会消失。

增加else语句,在其他数字,显示空白,即可达到预期效果。

更新后的方法rollDice()的代码如下

    private fun rollDice(){
        //建立新的Dice物件执行函数
        val dice = Dice(6)
        val diceRoll = dice.roll()
        val resultTextView: TextView = findViewById(R.id.textView)
        resultTextView.text = diceRoll.toString()

        val luckyTextView: TextView = findViewById(R.id.textView2)
        val luckyNumber= 6
        if(luckyNumber == diceRoll){
            luckyTextView.text = "lucky number!"
        }
        else{
            luckyTextView.text=""
        }
    }

增加字串安卓资源

这里有一个告警,提示“字符串文字无法翻译,建议用安卓资源替换”

 点击More actions,选择提取字符串资源

资源名字为变量LuckyNumber

 代码自动更新为:

        if(luckyNumber == diceRoll){
            luckyTextView.text = getString(R.string.LuckyNumber)
        }

同时 Android Studio自动增加了android资源。

 图片设计,练习使用if和when表达式

 图片的ID为ImageView。

定义图片变量diceImage,对应随机数字显示相应的骰子图片。

可以用if...else语句,但选择when()语句比较合适。

        val diceImage: ImageView = findViewById(R.id.imageView)
/*        if(diceRoll==1){
            diceImage.setImageResource(R.drawable.dice_1)
        }
        else if(diceRoll ==2){
            diceImage.setImageResource(R.drawable.dice_2)
        }*/

        when(diceRoll){
            1-> diceImage.setImageResource(R.drawable.dice_1)
            2-> diceImage.setImageResource(R.drawable.dice_2)
            3-> diceImage.setImageResource(R.drawable.dice_3)
            4-> diceImage.setImageResource(R.drawable.dice_4)
            5-> diceImage.setImageResource(R.drawable.dice_5)
            6-> diceImage.setImageResource(R.drawable.dice_6)
        }

 进一步优化代码,相同的方法diceImage.setImageResource()代码重复,定义新的整形变量drawableResource替代。

        //相同的逻辑只需使用when表达式
        val drawableResource: Int = when(diceRoll){
            1-> R.drawable.dice_1
            2-> R.drawable.dice_2
            3-> R.drawable.dice_3
            4-> R.drawable.dice_4
            5-> R.drawable.dice_5
            else-> R.drawable.dice_6
        }

        diceImage.setImageResource(drawableResource)

链接手机,实际运行

作者在这里建立新的diceroller2项目,仿真设备选择 Small Phone API19, 版本选择Android 4.4 (“KitKat”)|x86。

运行效果:

如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值