墨迹天气桌面挂件换肤分析

该篇文章需要准备如下工具:

1、墨迹皮肤文件下载地址

 

Andorid换肤在网上搜索出来的结果,大概有三种:

1、应用本身带有写好的布局

优点:开发难度低

缺点:灵活性低,用户不能自定义皮肤。

2、使用APK的方式

优点:程序员可以拿出来炫耀自己的技术。

缺点,开发难度中,而且容易出现问题,实现方式和第一种一样,只是获得资源方式不同罢了。

3、使用皮肤文件

优点:用户可定制,灵活性高。

缺点:开发难度中,需要编写大量的代码,这方面资料的介绍很少。

网上能看到详细介绍并作示范的只有前面两种,第三种方案大概就是吹一吹,并没有具体描述其实现的流程和思想。

经分析其流程如下:

1、墨迹天气会首先从服务器中获得皮肤文件,该文件其实是一个ZIP压缩文件,感谢墨迹没有对这方面做加密处理。

2、解压皮肤文件,里面只有两类文件,分别是图片资源文件(PNG)和皮肤绘制描述文件(XML

3、程序根据一定的规则解析皮肤绘制文件,然后按照设定绘制图片和文字。

这么一看,实现这个功能非常简单。

下面是逆向分析整理的一份墨迹解析的配置文件(结合墨迹皮肤文件解压后的setting.xml分析会更好)皮肤文件下载换肤配置文档下载

所谓的自定义的皮肤,不过就是在一个画板上贴图罢了。但是有一个特别的问题需要处理,屏幕那么多,皮肤配置文件给的是写死的坐标该如何适配呢!这个问题不用担心,这一点墨迹已经为我们做好了,详细参看上面的墨迹解析配置文件和皮肤绘制描述文件,里面具体的说明了在不同的分辨率下使用不同的宽和高。

到这里基本算是清楚了,当我们把墨迹的挂件放在桌面上,并使用自定义皮肤,你会在墨迹天气(/data/data/com.moji.mjweather/files)目录下发现这么几个文件。其实是绘制出来的三张图片,然后拼装起来,就成了我们看到的自定义皮肤了,原理简单通俗易懂。

 

现在揭晓挂件上的按钮是如何办到的,其实这些按钮已经固定好了位置,功能也是固定的,在画好的皮肤上面有几个区域添加了几个透明的蒙版(View)当做按钮。

总结:

自定义皮肤不过就是在画板(Canvas)上贴图罢了。关键的部分是如何解析皮肤绘制文件,并按照规则贴图。


-


-



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值