![物联网移动应用开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/36/36862036/b_36862036.jpg)
2.5 更改应用的启动图标和应用名称
![](https://epubservercos.yuewen.com/7AE700/19549638101507906/epubprivate/OEBPS/Images/38_01.jpg?sign=1739319858-NSIsSxZrYn55azgLtt3CvRNNQ7YOxQF4-0-e4a33d8acf4675d5627084d55d54d723)
9 更改应用图标和名称
Android Studio创建项目时会为应用自动创建应用的启动图标,放在mipmap*文件夹内。在Android中,图片是资源的一种,一般应放在app/src/main/res/drawable、drawable-hdpi、drawable-mdpi、drawable-xhdpi、drawable-xxhdpi、drawable-xxxhdpi文件夹内。要在文件夹中增加一个图片文件,只需要把图片文件拖入这个文件夹。如果愿意,可以根据设备的屏幕密度使用不同的图片文件,这样可以在高密度屏幕上显示高分辨率图片,而在低密度屏幕上显示低分辨率图像。为此要在app/src/main/res中为不同的屏幕密度创建不同的drawable文件夹。文件夹与设备的屏幕密度相关,如下所示。
①drawable-mdpi:中密度屏幕,约160dpi。
②drawable-hdpi:高密度屏幕,约240dpi。
③drawable-xhdpi:超高密度屏幕,约320dpi。
④drawable-xxhdpi:超超高密度屏幕,约480dpi。
⑤drawable-xxxhdpi:极高密度屏幕,约640dpi。
然后将不同分辨率的图片放在各个drawable*文件夹内,确保各个图片文件名字相同。Android会根据运行设备的屏幕密度来确定运行时使用哪一个图片文件。举例来说,如果设备有一个超高密度屏幕,它就会使用位于drawable-xhdpi文件夹中的图片文件。如果只在一个文件夹中增加图片,Android就会为所有设备使用相同的图片文件。如果这样,通常会将图片文件放在drawable文件夹中。图片资源目录如图2-27所示。
![](https://epubservercos.yuewen.com/7AE700/19549638101507906/epubprivate/OEBPS/Images/38_02.jpg?sign=1739319858-eh1p8eD9qt7bw5rjoGu06vXwZqkdG2gW-0-059568c2a270cb9e2bc52ed78dab5b7e)
图2-27 图片资源目录
这里注意,Android Studio会自动生成mipmap*文件夹。但一般在mipmap*文件夹下,仅建议存放启动图标(app/launcher icons)和缩放动画相关的图片,而其他的图片资源等还是存放在drawable*文件夹下。
因此,可以将应用的启动图标文件复制到mipmap*文件夹内。将不同分辨率的icon_launcher.png图片复制到相应的mipmap*文件夹内,如图2-28所示。
![](https://epubservercos.yuewen.com/7AE700/19549638101507906/epubprivate/OEBPS/Images/39_01.jpg?sign=1739319858-LIHJYwLFWxeYNJr4UvXUehRfIkf6nZTo-0-16ce943f75d8a8054eaed1eede5015b9)
图2-28 mipmap*图片资源目录
双击AndroidManifest.xml文件,修改相应属性。
![](https://epubservercos.yuewen.com/7AE700/19549638101507906/epubprivate/OEBPS/Images/39_02.jpg?sign=1739319858-wU3NfHBDfqdqcuUpjP9ew8aLnea34FwB-0-1fd185642108c8ee7b0953dfd2b25491)
在第6行中,将icon修改为@mipmap/icon_launcher,重新运行应用。
AndroidManifest.xml清单文件是每个Android程序中必需的文件。它位于整个项目的根目录,描述了package中各类组件(如Activity、Service等)、它们各自的实现类、各种能被处理的数据和启动位置。除了能声明程序中的各类组件,还能指定安全控制和测试。
第2行定义Android命名空间。
第3行指定本应用内Java主程序包的包名为“cn.edu.jsit.smartfactory”。
第4~16行在application标签中声明了每一个应用组件及其属性(如icon、label、permission等),这个标签不能少。
第5行定义允许adb进行备份和还原。
第6行定义应用图标。
第7行定义应用名称。
第8行定义支持RTL。
第9行定义应用使用的主题。
第10~15行定义了活动MainActivity。
第10行定义了活动的类名,有一个“.”前缀,在这里这个类名就是.MainActivity。类名前面之所以有一个“.”前缀,这是因为会结合类名和包名来得出完全限定类名“cn.jsit.edu.smartfactory.MainActivity”。
第11~14行定义了意图过滤器,指定了应用启动时加载MainActivity这个活动。
更新后运行结果如图2-29所示。
![](https://epubservercos.yuewen.com/7AE700/19549638101507906/epubprivate/OEBPS/Images/40_01.jpg?sign=1739319858-z9EEHTXA80QPH9XAoelXZlFW6yfJBXAB-0-0ef8c63e0486c8d300121394d14986cd)
图2-29 更新启动图标
打开app/src/main/res/values目录下的strings.xml文件。Android Studio创建了一个字符串资源文件,名为strings.xml,通过name-value来存放字符串,在布局文件中包含字符串的引用,而不是字符串本身。
![](https://epubservercos.yuewen.com/7AE700/19549638101507906/epubprivate/OEBPS/Images/41_01.jpg?sign=1739319858-KwNDjGDBJVOrcTo8fstUq7X8bdcsfoCV-0-2d95b97ed26f1d50cd36fe78f2860e69)
将app_name改为“智慧工厂”,如图2-30所示。
![](https://epubservercos.yuewen.com/7AE700/19549638101507906/epubprivate/OEBPS/Images/41_02.jpg?sign=1739319858-AIpGQM4awhnpqVjcvZvDScFAKhO8jbmO-0-6090099f0557d0012aa98ecfbe189b56)
图2-30 在strings.xml中更改应用名称
重新运行程序,结果如图2-31所示。
![](https://epubservercos.yuewen.com/7AE700/19549638101507906/epubprivate/OEBPS/Images/41_03.jpg?sign=1739319858-vK5EFRoZdpfN1oqCqd78DMfKaclN9kwg-0-9bb0368b3193dd1a7da0210bb1a0044f)
图2-31 新的应用图标和名称