资源的导入
在前面讲解产品原型设计的章节中,我们已经创建出了各种开发时需要使用的各种图标了,包括应用图标、系统图标等等。
图标导入
现在,我们先把开发过程中要使用到的图片资源添加到Android Studio
工程目录当中。
将
Sketch
创建的静态高保真原型中的图标,根据导出的尺寸,将它们分类整理到对应的文件夹当中,打开
天气预报
所在的Android Studio
的工程文件夹-app -> src -> main -> res
,将图片替换到对应的mipmap
目录当中;重新部署应用到设备上,桌面上的
天气预报
应用图标,已经从以前的安卓机器人,变成了新的图标了,
版本管理
我们新增了约90个图片资源,需要将它们加入到Git的版本控制之中。
- 查看
Version Control: -> Local Changes -> browse
; 在弹出的对话框中,选中需要加入版本控制的90个图片文件,点击左边的
+
;需要管理的文件被添加到了
stage
当中;之后再把这些改动,按照上一张讲到提交到本地库和远程GitHub当中的方式进行操作就可以了;
图片的使用
对于那些导入的图片资源,Android Studio
会做进一步处理,自动生成一个R.java
文件,文件中给每一张图片生成一个对应的id
值。
public final class R {
public static final class mipmap {
public static final int ic_air_quality=0x7f030000;
public static final int ic_cloudy_l=0x7f030001;
public static final int ic_cloudy_s=0x7f030002;
public static final int ic_fog_l=0x7f030003;
public static final int ic_fog_s=0x7f030004;
public static final int ic_humidity_level=0x7f030005;
public static final int ic_launcher=0x7f030006;
public static final int ic_rainy_l=0x7f030007;
public static final int ic_rainy_s=0x7f030008;
public static final int ic_snow_l=0x7f030009;
public static final int ic_snow_s=0x7f03000a;
public static final int ic_sport_level=0x7f03000b;
public static final int ic_sunny_cloudy_l=0x7f03000c;
public static final int ic_sunny_cloudy_s=0x7f03000d;
public static final int ic_sunny_l=0x7f03000e;
public static final int ic_sunny_s=0x7f03000f;
public static final int ic_ultraviolet_level=0x7f030010;
public static final int ic_wind_direction=0x7f030011;
public static final int ic_wind_level=0x7f030012;
}
}
当我们要使用对应资源的时候,直接使用java代码
:
int id = R.mipmap.ic_launcher;
就可以了。
通过这种方式,完成了资源
到代码
的转换。
资源的条件命名法
图片资源文件夹的命名方式很有特点,在主名字之后,使用-
间隔了一些扩展名字。例如,
mipmap-hdpi mipmap-xhdpi
目录名用“-”增加了限制条件。也就是给目录里资源的使用增加了约束。
这里用mipmap-hdpi
文件夹举例说明:如果当前的设备属于hdpi
类型的屏幕,那么在使用图片的时候,系统优先使用其中的图片。
除了上面的目录结构,有时你还会看到如下的目录形式:
mipmap-hdpi
:给属于hdpi
的设备使用;values-zh
:给当前语言是中文的系统使用;layout-land
:给处于横屏状态的系统使用;
图片的优化
屏幕密度选择性匹配
并不是说一定要为所有的屏幕密度做对应图片尺寸的匹配,因为如果做全部匹配会让程序的体积快速增大。
大多数时候,我们会选择先做高清晰度的尺寸,例如xxhdpi
。其他屏幕密度的设备需要使用资源时,就会把xxhdpi
中的资源,做适度的缩放,以达到匹配的效果。
对于个别系统缩放也达不到显示要求的图片,才做针对不同屏幕密度的配套图片。
我们的天气预报
把所有尺寸的屏幕密度都做了适配。
矢量图标
另外,对于很多系统图标,我们也可以不使用png
图片,而采用矢量图,让安卓系统绘制图标。这样一来,程序的体积可以跟小,显示效果也更为出众。
不过大家初次接触安卓开发,为了减少不必要的枝节,我就隐去了这部分内容,将来再和大家详细的讲述。
本文是《从设计到实现-手把手教你做android应用开发》系列文档中的一篇。感谢您的阅读和反馈,对本文有任何的意见和建议请留言,我都会尽量一一回复。
如果您觉得本文对你有帮助,请推荐给更多的朋友;或者加入我们的QQ群348702074和更多的小伙伴一起讨论;也希望大家能给我出出主意,让这些文档能讲的更好,能最大化的帮助到希望学习开发的伙伴们。
除了CSDN发布的文章,本系列最新的文章将会首先发布到我的专属博客book.anddle.com。大家可以去那里先睹为快。
同时也欢迎您光顾我们在淘宝的网店安豆的杂货铺。店中的积木可以搭配成智能LED灯,相关的配套文档也可以在这里看到。
这些相关硬件都由我们为您把关购买,为大家节省选择的精力与时间。同时也感谢大家对我们这些码农的支持。
最后再次感谢各位读者对安豆
的支持,谢谢:)