android应用开发-从设计到实现 4-5资源的导入

资源的导入

在前面讲解产品原型设计的章节中,我们已经创建出了各种开发时需要使用的各种图标了,包括应用图标、系统图标等等。

图标导入

现在,我们先把开发过程中要使用到的图片资源添加到Android Studio工程目录当中。

  1. Sketch创建的静态高保真原型中的图标,根据导出的尺寸,将它们分类整理到对应的文件夹当中,

     4_5_drawable_resource_scale
  2. 打开天气预报所在的Android Studio的工程文件夹-app -> src -> main -> res,将图片替换到对应的mipmap目录当中;

     import_icons
  3. 重新部署应用到设备上,桌面上的天气预报应用图标,已经从以前的安卓机器人,变成了新的图标了,

     app_icon_changed

版本管理

我们新增了约90个图片资源,需要将它们加入到Git的版本控制之中。

  1. 查看Version Control: -> Local Changes -> browse;
  2. 在弹出的对话框中,选中需要加入版本控制的90个图片文件,点击左边的+

     icon_resources_add_to_git
  3. 需要管理的文件被添加到了stage当中;

     icon_resources_add_to_git_2
  4. 之后再把这些改动,按照上一张讲到提交到本地库和远程GitHub当中的方式进行操作就可以了;

     icon_resources_commit

图片的使用

对于那些导入的图片资源,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类型的屏幕,那么在使用图片的时候,系统优先使用其中的图片。

除了上面的目录结构,有时你还会看到如下的目录形式:

  1. mipmap-hdpi:给属于hdpi的设备使用;
  2. values-zh:给当前语言是中文的系统使用;
  3. layout-land:给处于横屏状态的系统使用;

图片的优化

屏幕密度选择性匹配

并不是说一定要为所有的屏幕密度做对应图片尺寸的匹配,因为如果做全部匹配会让程序的体积快速增大。

大多数时候,我们会选择先做高清晰度的尺寸,例如xxhdpi。其他屏幕密度的设备需要使用资源时,就会把xxhdpi中的资源,做适度的缩放,以达到匹配的效果。

对于个别系统缩放也达不到显示要求的图片,才做针对不同屏幕密度的配套图片。

我们的天气预报把所有尺寸的屏幕密度都做了适配。

矢量图标

另外,对于很多系统图标,我们也可以不使用png图片,而采用矢量图,让安卓系统绘制图标。这样一来,程序的体积可以跟小,显示效果也更为出众。

不过大家初次接触安卓开发,为了减少不必要的枝节,我就隐去了这部分内容,将来再和大家详细的讲述。


本文是《从设计到实现-手把手教你做android应用开发》系列文档中的一篇。感谢您的阅读和反馈,对本文有任何的意见和建议请留言,我都会尽量一一回复。

如果您觉得本文对你有帮助,请推荐给更多的朋友;或者加入我们的QQ群348702074和更多的小伙伴一起讨论;也希望大家能给我出出主意,让这些文档能讲的更好,能最大化的帮助到希望学习开发的伙伴们。

除了CSDN发布的文章,本系列最新的文章将会首先发布到我的专属博客book.anddle.com。大家可以去那里先睹为快。


同时也欢迎您光顾我们在淘宝的网店安豆的杂货铺。店中的积木可以搭配成智能LED灯,相关的配套文档也可以在这里看到。

这些相关硬件都由我们为您把关购买,为大家节省选择的精力与时间。同时也感谢大家对我们这些码农的支持。

最后再次感谢各位读者对安豆的支持,谢谢:)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值