Android 应用更换皮肤实现方法

Android应用更换皮肤功能的实现思路

  我们可以将皮肤包做成一个apk文件,在应用apk中读取皮肤包中的数据。

  应用apk读取皮肤包apk的数据的条件

1. 有相同签名

2. AndroidManifest.xml中配置android:sharedUserId有相同的属性值

满足以上条件,两个apk就能互相访问数据了。

     Android应用更换皮肤功能的实现步骤

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

XML/HTML代码

android:sharedUserId="com.yee"

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

例如:应用apk的图片路径:\res\drawable-hdpi\XX.png

皮肤apk中的图片文件路径也应该是:\res\drawable-hdpi\XX.png

3、获取皮肤资源

Java代码:

Context context = createPackageContext("com.yee.skin", Context.CONTEXT_IGNORE_SECURITY);

获取到皮肤包com.yee.skin对应的Context,通过返回的context对象就可以访问到皮肤apk包com.yee.skin中的任何资源。

在应用apk中要获得皮肤apk中的buttonbackground.png的代码如下

Java代码:

Drawable drawable = context.getResources().getDrawable(R.drawable.buttonbackground);

以上就是Android 应用更换皮肤的实现方法,后续继续整理相关资料,谢谢大家对本站的支持。

(0)

相关推荐

  • Android提高之TelephonyManager功能探秘

    前面文章介绍了如何使用JAVA的反射机制来调用蓝牙的隐藏API,本文继续来练习JAVA的反射机制,探秘TelephonyManager在Framework里包含却在SDK隐藏的几项功能. 先来看一下本文程序运行的效果图,如下所示: 本文程序演示了以下功能: 1.所有来电自动接听: 2.所有来电自动挂断: 3.开启/关闭Radio: 4.开启/关闭数据连接(WAP or NET的连接). 调用TelephonyManager的隐藏API是先参考Framework的/base/telephony/j

  • 安卓(Android)开发之统计App启动时间

    前言 作为 Android 开发者,想必多多少少要接触启动速度优化相关的事情,当用户越来越多,产品的功能也随着迭代越来越多,App 逐渐变得臃肿是一件很常见的现象,甚至可以说是不可避免的现象,随之而来的工作就是优化 App 性能,其中最主要的一项就是启动速度优化.但本文的主角并不是启动速度优化,而是启动时间统计. 一.启动类型 工欲善其事,必先利其器.想要优化 App 的启动速度,必须有准确衡量启动时间的方法,否则优化完之后效果怎样,自己都不知道,说出去别人也不信服不是.在做 App 启动时间统

  • Android GPS详解及示例代码

    LBS(Location Based Services)直译的话就是基于地理位置的服务,这里面至少有两层意思,第一要能轻易的获取当前的地理位置,譬如经纬度海拔等,另一个就是在当前位置的基础上提供增值服务,譬如找附近的加油站.餐馆.酒店等.这里面的第一步:获取用户当前位置,我们就可以用Android的GPS定位服务来得到.Android提供了基于网络的定位服务和基于卫星的定位服务两种.在设置->位置和安全设置里面的前三项就是,最后一个增强型GPS是为了辅助快速找卫星的. 那么我们现在就写一个简单的

  • Android中TelephonyManager用法实例

    本文实例讲述了Android中TelephonyManager用法.分享给大家供大家参考,具体如下: 一.概述: TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法.其中包括手机SIM的状态和信息.电信网络的状态及手机用户的信息.在应用程序中可以使用这些get方法获取相关数据. TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得,需要注意的是

  • Android中TelephonyManager类的用法案例详解

    本文以案例形式分析了Android中TelephonyManager类的用法.分享给大家供大家参考.具体如下: 目录结构: main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="ve

  • Android中TelephonyManager类的方法实例分析

    本文实例讲述了Android中TelephonyManager类的方法.分享给大家供大家参考.具体如下: TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法.其中包括手机SIM的状态和信息.电信网络的状态及手机用户的信息.在应用程序中可以使用这些get方法获取相关数据. TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得,需要注意的是有些通讯

  • Android如何自定义按钮效果

    安卓原生的按钮是多么丑,效果是多么单调,大家也是有目共睹的. 要做一个APP少不了使用按钮,一个好看的按钮少不了好看的效果和外表,这次主要跟大家讲讲如何用drawable的xml文件弄一些好看的自定义样式. 首先是外表 在APP中四四方方,灰色底黑色字的按钮是很难看的,我们希望看到的是圆角,彩色,白字(根据你的个人审美也可以是其他样式). 首先是在layout里新建一个按钮 ,然后在drawable文件夹里新建一个drawable resource file ,不妨起名为shape ,加一个se

  • Android TelephonyManager详解及实现代码

    JAVA的反射机制,探秘TelephonyManager在Framework里包含却在SDK隐藏的几项功能.先来看看本文程序运行的效果图: 本文程序演示了以下功能: 1.所有来电自动接听:        2.所有来电自动挂断:        3.开启/关闭Radio:        4.开启/关闭数据连接(WAP or NET的连接). 调用TelephonyManager的隐藏API是先参考Framework的/base/telephony/java/com/android/internal/

  • Android 应用更换皮肤实现方法

    Android应用更换皮肤功能的实现思路   我们可以将皮肤包做成一个apk文件,在应用apk中读取皮肤包中的数据.   应用apk读取皮肤包apk的数据的条件 1. 有相同签名 2. AndroidManifest.xml中配置android:sharedUserId有相同的属性值 满足以上条件,两个apk就能互相访问数据了.      Android应用更换皮肤功能的实现步骤 1.应用程序和皮肤程序的AndroidManifest.xml中配置 XML/HTML代码 android:shar

  • JQuery给网页更换皮肤的方法

    本文实例讲述了JQuery给网页更换皮肤的方法.分享给大家供大家参考.具体分析如下: 为了更好的提升用户体验,很多网页都有换肤的功能,那么这是怎么实现的那,其实,换肤只不过是在对应的位置改了Css样式罢了!! 下面就演示如何简单的换肤 在设计HTmL代码时,注意一些小技巧,可以将皮肤选项按钮的id设置成和皮肤样式文件名称相同,这样皮肤切换的操作就简单多了样式连接要带一个有Id样式的连接表,通过操作该链接的href属性的值,从而实现换肤.即: 用户点击完就可以换肤了,但是,当用户刷新或者关闭浏览器

  • 易语言软件更换皮肤的方法

    一般软件等你开发好后,会发觉自己的软件外观很难看,那么怎么样给软件更换新的皮肤,是很多新手需要知道的.下面我就为大家解决在易语言里如何更换皮肤的问题做一下经验介绍,以下以我制作的一个音乐播放器为例,为大家讲解怎么换皮肤: 1.首先准备皮肤模块,没有的可以去官网下载或者百度一下 2.打开易语言开发环境,如下图 3.在左侧的工作夹区域里,选择"程序"属性 4.右键"模块引用表",然后选择添加模块引用 5.选择已准备好的模块文件 6.在菜单栏选择工具,在下来菜单里选择&q

  • JavaScript每天定时更换皮肤样式的方法

    本文实例讲述了JavaScript每天定时更换皮肤样式的方法.分享给大家供大家参考.具体分析如下: 这段js代码通过每天在不同时段自动更换网页调用的样式表,实现更换皮肤的功能. <script type="text/JavaScript"> <!-- function getStylesheet() { var currentTime = new Date().getHours(); if (0 <= currentTime&&currentTi

  • jQuery实现每隔一段时间自动更换样式的方法分析

    本文实例讲述了jQuery实现每隔一段时间自动更换样式的方法.分享给大家供大家参考,具体如下: js核心代码部分: $(document).ready(function(){ // 皮肤列表选项切换 $(".ulSkin li").click(function(){ $(this).addClass("active").siblings("li").removeClass("active"); }); }); // 皮肤背景切

  • Android动态更换应用图标详情

    目录 一.背景 二.技术实现 一.背景 近日,微博官方发布了一项新功能,即可以在App设置中动态更换微博的显示图标样式.根据微博官方的说法,除了最原始的图标外,微博还推出了另外10种不同的样式,既有3D微博.炫彩微博等保留了眼睛造型的新样式,也有奶酪甜馨.巧克力等以食物命名的“新口味”,还有梦幻紫.幻想星空等抽象派新造型,给了微博用户多种选择的自由. 不过需要注意的是,这一功能并不是面对所有人开放的,只有微博年费会员才能享受.此外,iOS 10.3及以上和Android 10及以上系统版本支持该

  • Android webview实现拍照的方法

    Android webview实现拍照的方法 1. html <div id="pnlVideo1"> <input type="hidden" name="imgNric1" id="imgNric1" /> <label id="nric" class="control-label labelfont" style="color:#888;fo

  • android针对json数据解析方法实例分析

    本文实例讲述了android针对json数据解析方法.分享给大家供大家参考.具体如下: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.

  • Android实现定制桌面的方法

    本文实例讲述了Android实现定制桌面的方法.分享给大家供大家参考.具体如下: launcher也就是我们的Home,可以简单地把它理解为一个简化的linux GUI.作为一个GUI它首先必须完成它最本分的功能,就是它必须能提供对所有应用程序(CATEGORY_LAUNCHER)的映射:不过作为一个 GUI,它除了做好本分之外还必须是符合大众审美的美女(wallpaper):另外还必须具有良好的交互性,没有良好的交互性就像你对一位美女殷勤了半天,她却直接对无视,那结果是比较糟糕的-- 所谓兵马

  • Android控件ListView使用方法详解

    Android控件ListView使用方法介绍,具体如下 一.ListView的简单用法 首先新建一个ListViewTest项目,并让Android Studio自动创建好活动.然后修改activity_main.xml中的代码,如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/re

随机推荐