广告
返回顶部
首页 > 资讯 > 移动开发 >Android编程实现换肤功能实例
  • 202
分享到

Android编程实现换肤功能实例

Android 2022-06-06 09:06:43 202人浏览 薄情痞子
摘要

本文实例讲述了Android编程实现换肤功能的方法。分享给大家供大家参考,具体如下: 本系列专题培训适用范围:初级Android程序员,即有J2SE基础和Android初级水平

本文实例讲述了Android编程实现换肤功能的方法。分享给大家供大家参考,具体如下:

本系列专题培训适用范围:初级Android程序员,即有J2SE基础和Android初级水平。J2SE基础是指掌握JAVA语法,1.5、1.6新增的语法不完全掌握也没关系。了解基本的面向对象思想、能编写简单的J2SE程序,掌握基本的调试方法,熟悉Swing更好。Android初级是指掌握Activity、Service、BroadcastReceiver、Intent、sqlite、UI组件的使用,能参照例子编写简单的Android应用程序。

先看一下实现的效果:

启动时的皮肤

设置pak中的皮肤

设置zip包中的皮肤

本节课程的目的:学会换肤的方案及实现,掌握不同换肤方案的优缺点及适用场合。

希望各位同学做到:学习某一个技巧就掌握透彻,多练习。最好举一反三、触类旁通,掌握分析问题解决问题的思路和方法。

我讲解的是原理以及实现的关键技术点,细节、优化及与课程主题不相关的或初级的内容可能不会讲解。这是免费培训,精力有限,暂时只能做到让普通的变优秀,让优秀的变卓越。你要是已经卓越了来教教我吧。暂时不做入门培训。

国内有很多的软件都支持皮肤定制,这也是与国外软件重大不同之一,国外用户注重社交、邮件等功能,国内用户则重视音乐、小说、皮肤等功能,本节课程就来讲解Android应用程序如何实现换肤功能。

软件换肤从功能上可以划分三种:

1) 软件内置多个皮肤,不可由用户增加或修改;

最低的自由度,软件实现相对于后两种最容易。

2) 官方提供皮肤供下载,用户可以使用下载的皮肤;

用户可选择下载自己喜欢的皮肤,有些玩家会破解皮肤的定制方法,自己做皮肤使用,或者传到网上给大家用。

3) 官方提供皮肤制作工具或方法,用户可自制皮肤。

这种方式使用户有参与感,自由度较高。用户可根据自己的喜好定制软件的皮肤。有些软件官网提供皮肤定制的工具或者方法,我建议最好有可视化带向导的工具。用户只要自己找一些图片、修改文字的字体替换就可以了。用户可以上传自制的皮肤,提供其他用户下载,还可以赚得一些虚拟货币或者奖品什么的。这种一般都是打包为.zip格式的。扩展名可由各公司自定义,有制作工具的话直接导出来最方便。

首先我们要弄清楚换肤的定义,软件皮肤包括图标、字体、布局、交互风格等,换肤就是换掉皮肤包括的部分或所有资源。

前面提到的三种皮肤,从软件实现上来看,它们的本质区别是皮肤是否内置到应用程序中。对于内置的实现比较简单,只要在开发应用的过程中设计几套皮肤供用户选择。这里用到的知识不超过Android基础,不详细讲解。

本节课程重点讲解如何实现皮肤与应用程序分离。

皮肤一般含有多个文件,例如图片、配置等文件,分散的文件不利于传输和使用,最好打包。打包的格式一般选择zip格式。这里分两种情况,一种是apk,例如AdwLauncher,它的桌面皮肤格式是一个apk;另一种是自定义扩展名,例如墨迹天气皮肤扩展名是mja,搜狗输入法的皮肤扩展名是sga,它们的文件格式实际上都是zip。

下面我们分别讲解。

一.apk格式

现在的问题变成了一个应用如何读取另一个apk中的资源。

在android系统中,apk之间可以相互读取数据的条件是:有同样的签名,并且AndroidManifest.xml文件中配置的android:sharedUserId属性值相同,那么两个apk运行在同一个进程中,可以互相访问任意数据。

方法如下:

1) 应用程序和皮肤程序的AndroidManifest.xml中配置

例如: android:sharedUserId="org.yuchen"

2) 文件与应用apk中对同一功能的皮肤文件名要一致

例如:应用程序的背景图片路径:/SkinDemo/res/drawable-hdpi/bg.png

那么皮肤apk中的背景图片文件路径也应该是:

CustomSkin/res/drawable-hdpi/bg.png

3)访问资源的方法
代码如下:Context context = createPackageContext("com.yuchen.customskin", Context.CONTEXT_IGNORE_SECURITY);

获取到org.yuchen.customskin对应的Context,通过返回的context对象就可以访问到org.yuchen.customskin中的任何资源。

例如:应用apk要获得皮肤apk中的bg.png,
代码如下:Drawable drawable = context.getResources().getDrawable(R.drawable.bg);

这样就得到了图片的引用,其他xml资源文件的获取方式也是类似的。

二.自定义扩展名的zip格式的皮肤

技术点在于如何去读取zip文件中的资源以及皮肤文件存放策略。

方案:如果软件每次启动都去读取SD卡上的皮肤文件,速度会比较慢。较好的做法是提供一个皮肤设置的界面,用户选择了哪一个皮肤,就把那个皮肤文件解压缩到”/data/data/[package name]/skin”路径下,这样不需要跨存储器读取,速度较快,而且不需要每次都去zip压缩包中读取,不依赖SD卡中的文件,即使皮肤压缩包文件被删除了也没有关系。

实现方法:

1. 在软件的帮助或者官网的帮助中提示用户将皮肤文件拷贝到SD卡指定路径下。

2. 在软件中提供皮肤设置界面。可以在菜单或者在设置中。可参考墨迹、搜狗输入法、QQ等支持换肤的软件。

3. 加载指定路径下的皮肤文件,读取其中的缩略图,在皮肤设置界面中显示,将用户选中的皮肤文件解压缩到”/data/data/[package name]/skin”路径下。

4. 软件中优先读取”/data/data/[package name]/skin/”路径下的资源。如果没有则使用apk中的资源。

希望本文所述对大家Android程序设计有所帮助。

您可能感兴趣的文章:Android主题切换之探究白天和夜间模式基于android样式与主题(style&theme)的详解Android中应用界面主题Theme使用方法和页面定时跳转应用Android 设置主题实现点击波纹效果的示例分析Android多主题颜色的相关问题Android入门教程之创建样式与主题Android编程应用风格和主题详解android仿iphone主题效果的主菜单Android实现换肤的两种思路分析Android开发实现切换主题及换肤功能示例


--结束END--

本文标题: Android编程实现换肤功能实例

本文链接: https://www.lsjlt.com/news/26213.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android编程实现换肤功能实例
    本文实例讲述了Android编程实现换肤功能的方法。分享给大家供大家参考,具体如下: 本系列专题培训适用范围:初级Android程序员,即有J2SE基础和Android初级水平...
    99+
    2022-06-06
    Android
  • vue实现换肤功能
    公司项目要实现vue项目换肤功能,要求,考虑到最节省时间的就是写两套css,一套light.css,一套dark.css,然后切换css 一、实现思路 切换选中的皮肤状态(light...
    99+
    2022-11-13
  • vue如何实现换肤功能
    今天小编给大家分享一下vue如何实现换肤功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先我们用vue-element-...
    99+
    2023-07-04
  • 怎么在Android 应用中实现一个换肤功能
    今天就跟大家聊聊有关怎么在Android 应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Android换肤技术总结背景纵观现在各种Android app,其换肤...
    99+
    2023-05-31
    android roi
  • js如何实现网页换肤功能
    小编给大家分享一下js如何实现网页换肤功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html<!DOCTYPE&nbs...
    99+
    2022-10-19
  • 分析Android App中内置换肤功能的实现方式
    Android平台api没有特意为换肤提供一套简便的机制,这可能是外国的软件更注重功能和易用,不流行换肤。系统不提供直接支持,只能自行研究。 换肤,可以认为是动态替换资源(文...
    99+
    2022-06-06
    app Android
  • vue中怎么实现一个换肤功能
    这篇文章给大家介绍vue中怎么实现一个换肤功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1 色值的选取和原则推荐大家看下蚂蚁金服的设计指引,里面对常见的交互和界面设计有一套不错的指...
    99+
    2022-10-19
  • 怎么用jQuery.cookie.js插件实现换肤功能
    本篇内容主要讲解“怎么用jQuery.cookie.js插件实现换肤功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用jQuery.cookie.js插件...
    99+
    2022-10-19
  • QSS样式表实现界面换肤功能
    目录前言一、实现效果二、QSS简介及用法1.什么是QSS2.怎么使用QSS三、QSS用法一:单个控件调用setStyleSheet函数四、QSS用法二:编写单个界面.qss文件的并读...
    99+
    2022-11-13
  • jQuery中如何基于cookie实现换肤功能
    这篇文章将为大家详细讲解有关jQuery中如何基于cookie实现换肤功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:换肤,在你使用QQ、浏览器、酷狗等软件时...
    99+
    2022-10-19
  • Android编程实现播放MP3功能示例
    本文实例讲述了Android编程实现播放MP3功能。分享给大家供大家参考,具体如下: 在android中播放mp3非常简单,也是项目中经常使用的,比如说要做项目的背景音乐,应用...
    99+
    2022-06-06
    示例 mp mp3 Android
  • Android编程实现的首页左右滑动切换功能示例
    本文实例讲述了Android编程实现的首页左右滑动切换功能。分享给大家供大家参考,具体如下:很多软件会选择左右滑动的主界面,实现方式也很多,这里的仅供参考,勿喷。不多说什么了,相信大家看看代码就明白,自己也不善言辞,望大家谅解。自定义接口,...
    99+
    2023-05-30
    android 滑动 切换
  • Android编程实现两点触控功能示例
    本文实例讲述了Android编程实现两点触控功能。分享给大家供大家参考,具体如下:下面是一个两点触控的案例代码:package com.zzj;import android.app.Activity;import android.os.Bu...
    99+
    2023-05-30
    android 触控 roi
  • Android编程实现自定义title功能示例
    本文实例讲述了Android编程实现自定义title功能。分享给大家供大家参考,具体如下: 这里我在前面加了个logo,而且改变了title的背景和高度。 首先编写title...
    99+
    2022-06-06
    示例 title Android
  • Android编程实现简单流量管理功能实例
    本文实例讲述了Android编程实现简单流量管理功能的方法。分享给大家供大家参考,具体如下: package cn.itcast.mobilesafe.ui; import ...
    99+
    2022-06-06
    流量 Android
  • Android 应用更换皮肤实现方法
    Android应用更换皮肤功能的实现思路        我们可以将皮肤包做成一个apk文件,在应用apk中读取皮肤包...
    99+
    2022-06-06
    方法 Android
  • Android编程实现分页加载ListView功能示例
    本文实例讲述了Android编程实现分页加载ListView功能。分享给大家供大家参考,具体如下: package eoe.listview; import android....
    99+
    2022-06-06
    示例 listview 分页 Android
  • Android编程实现定时发短信功能示例
    本文实例讲述了Android编程实现定时发短信功能。分享给大家供大家参考,具体如下:第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中添加如下内容<uses-permis...
    99+
    2023-05-30
    android 短信 roi
  • Android实现换肤的两种思路分析
    本文分析了Android实现换肤的两种思路。分享给大家供大家参考,具体如下: 这里来了解换肤实现及不同方案的差异和使用场合。 一、从功能上划分 1) 软件内置多个皮肤,用户不能...
    99+
    2022-06-06
    Android
  • Android编程实现调用系统分享功能示例
    本文实例讲述了Android编程实现调用系统分享功能。分享给大家供大家参考,具体如下: public class ShareActivity extends Activit...
    99+
    2022-06-06
    调用 示例 系统 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作