• Android实现换肤功能(二)


    前两天写的上章关于换肤的功能获得了非常好的反响,今天为大家介绍还有一种方式。今天实现的策略也是网友建议的,然后我自己去写了个demo,大家自己评估下相比第一种方式的优势和劣势在哪里。

    简介下关于第一种关于换肤实现的方法一些不友好的地方。比方点击了换肤的功能键,须要先下载一个资源apk。然后再去引用当中的资源ID,于用户使用起来确实有有非常多不便之处。今天为大家介绍的方法是克服了这一弊端的,能够实现直接在应用内切换,把资源文件存储在本地apk的。读取和操作也是更加便捷的,以下介绍下大致的一个实现逻辑。

    一般实现换肤的功能有这么几点:一是图片资源的替换;二是文字颜色、大小、文字内容的更改。本次实现的策略都是基于asserts文件夹去实现的,如果有两套皮肤能够更换,我们须要在asserts文件夹下新建相应两套皮肤的文件夹,而他们当中拥有同样名称的资源(包含图片资源和properties文件)。

    使用第一套皮肤的话就调用第一文件夹下的全部资源。调用第二套皮肤的话就使用还有一文件夹下的资源。因为引用asserts下的资源不须要像res资源一样。而是须要通过AssertManager调用相应的资源路径就能够实现,所以实现起来相对R文件会稍稍麻烦麻烦一点。关于文字颜色等的属性的变化都是统一保存在properties里面。须要调用的话也仅仅是调用Properties中属性值就能够了,很easy方便。

    以下为大家演示下简单的使用。

    一、关于图片资源的引用


    一般载入图片会通过两种方式去实现。一是Bitmap。二是Drawable。这里也都有了事实上现的方法。

    二、关于TextView属性值的载入

    载入TextView属性值之前,记得一定要先初始化Properties,全部的属性值都是在properties中。

    三、使用

    点击button切换皮肤内容。

    今天的文章比較短,大家如有好的想法或者其它换肤好的实现。请私信我,我会在以下几天整理后继续为大家介绍。

    源代码地址:https://github.com/JackCho/SkinChangeDemo2

    假设认为对你有所帮助,欢迎大家订阅我的微信公众账号——Android干货分享(ID:android_share)

    以下是微信的二维码,为你提供及时高质的Android干货。技术交流QQ群:318588906,欢迎大家加群,共同探讨下Android和Java技术,一起壮大我们的微信干货分享社区。

  • 相关阅读:
    Windows控制台程序“选定模式”的问题
    落网的音乐很好听的,你造么?不能下载啊,怎么破?
    记一次复杂的正则匹配——匹配但不包含
    判断浏览器是否为IE内核的最简单的方法
    Nodejs发送Post请求时出现socket hang up错误的解决办法
    Windows下通过bat脚本实现自动上传文件到ftp服务器
    jQuery对html进行Encode和Decode
    scala学习笔记:理解类继承
    scala学习笔记:理解lazy值
    scala学习笔记:match表达式
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6822282.html
Copyright © 2020-2023  润新知