美文网首页
安卓应用换肤的技术和问题思考

安卓应用换肤的技术和问题思考

作者: 大宝京湘玉 | 来源:发表于2023-03-22 09:28 被阅读0次

    在地图应用开发过程中 换肤是一个必须要考虑的问题,

    那么怎么做到一键换肤,和支持一个项目多套皮肤呢?

    技术点,如果是按照手机的换肤方案有两点:

    1.获取activity的LayoutInflate,设置Factory2 来保存加载的view

    2.创建皮肤包的Resource,指定AssetManager和皮肤包的路径。

    这样就能达到换肤的目的。

    在车机上,一个项目如果要支持多套皮肤的话,除了系统支持皮肤商城的情况之外,还想要支持多套皮肤。这个是个好问题。

    比如一个项目 支持普通的白天和夜间两种样式,另外还支持机甲的样式。那么该如何解决这个问题呢?

    如果是继续采用手机的方案,白天和夜间的样式,可以支持,但另外添加了一套机甲的样式,这个该怎么获取资源呢?

    当然如果能够自己把资源包打进来然后加载到指定目录中,其实也还是可以使用手机的方案。如果没有资源包,而是就是集成到apk中,那么该怎么做呢?

    想到的办法 就是针对资源名字加后缀,然后在使用的时候 通过名字来判断是否需要加后缀来完成查找对应的资源文件。也是可以做到换肤的目的。

    对于手机上的方案,有这样一个疑问,如果把所有的view都缓存起来,那么在进行切换的时候,查找资源和替换资源是不是也很耗时?毕竟如果所有的view都加载了,那可是很多的view啊。这样即使在view只展示少部分的控件,那么进行替换就还是有较大的CPU和内存资源消耗了,

    能不能使用多少就换多少。这样在切换的时候 就能够真正的减少资源消耗,并且车机系统中的性能也能得到保障呢。

    那就采用比较笨的方法,每个页面自己来保存或者设置,这样只做当前正在展示的view,其他隐藏的view不做操作,只有切换到前台的时候 再做操作就行了。

    相关文章

      网友评论

          本文标题:安卓应用换肤的技术和问题思考

          本文链接:https://www.haomeiwen.com/subject/qkvvrdtx.html