- 浏览: 1013334 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (367)
- JavaScript (23)
- Java (60)
- Python (41)
- 其他 (36)
- SQL (4)
- 开发工具 (26)
- Linux (15)
- AJAX (6)
- Cache (3)
- 正则 (4)
- 架构 (9)
- 手机 (3)
- MySQL (4)
- Android (115)
- vps (1)
- 网站 (4)
- scale (3)
- 搜索引擎 (3)
- iPhone (2)
- hessian (1)
- hessdroid (1)
- 411 (1)
- jstat (1)
- gc (1)
- gallery (1)
- 惯性 (1)
- eclipse (1)
- mac wget error (1)
- miui file explorer 无用 解决办法 (1)
- vim (1)
最新评论
-
qingyezhangluo:
哎。楼主您既然是分享代码的为什么要加密的呢?而且问你密码还不回 ...
android应用换皮肤(转) -
MagicError:
kavoe 写道下载文件有密码。。。。
http抓包工具 -
knightdf:
我先试下再来
JAVA的RAS加密例子 -
kavoe:
下载文件有密码。。。。
http抓包工具 -
changanfounder:
hmc1985 写道setCallbackDuringFlin ...
android gallery滑动惯性问题
看到好多人在问题与解答里面都问怎么换肤,搜了一下论坛里面好像没怎么人弄个实例出来,所以我来了,哈哈。。
下面的文字大部分是转载的,也懒得自己去打字了,文采不好。
转载地址:http://www.cnblogs.com/suiyc/archive/2011/05/27/2059778.html
不过没图,呵呵。。
国内有很多的软件都支持皮肤定制,这也是与国外软件重大不同之一,国外用户注重社交、邮件等功能,国内用户则重视音乐、小说、皮肤等功能,本节课程就来讲解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="com.kris.skin" ,值可以是做任意的,
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中的资源。
下面是我做的实例的截图与source ,我只测试了一下通过apk 来换肤的功能 ,到少其它的方法就留给大家去实验吧,不过记得实验了也上传图来大家一起分享哟。
图来了:
换肤前的截图:
换肤后的截图:
工程源码来了,re_skin是主程序 ,re_skin1是皮质程序,也就是提供资源的:
- source1.rar (390.3 KB)
- 下载次数: 133
评论
发表评论
-
android屏幕适配
2012-11-16 17:24 2197屏幕适配一直是一个让人头疼的问题,论坛上讨论这个问题的最后也 ... -
禁止Eclipse中xml文件Run as的XSL Transformation生成out.xml以方便Android应用开发
2012-08-26 21:38 2647可以在Eclipse里面配置,菜单Windows->P ... -
android 自带的主题 theme 的使用
2012-08-25 23:21 2375在android的sdk 安装目录data\r ... -
android 如何判断程序是否在前台运行
2012-04-06 00:04 3107private boolean isTopActiv ... -
用代码如何检测一个android程序是否在运行
2012-04-05 23:07 3746<uses-permission android:na ... -
Android-TextView多行本文滚动轻松实现
2012-03-04 19:37 1330TextView tvAndroid123 = (T ... -
让背景模糊的效果
2012-03-04 16:22 2626设置透明度(这是窗体本身的透明度,非背景) Wi ... -
Android 使用shape
2012-03-04 16:14 1058刚刚翻论坛的时候看到的,总觉得以后会用的上这些零零碎碎 ... -
关于android中使用很多大图片的一些做法
2012-02-29 00:11 1448最近在xoom上开发应用,碰到ui设计都是使用图片,而 ... -
屏幕尺寸和像素密度的资源限定符
2012-02-23 15:31 1615屏幕尺寸和像素密度的资源限定符 以下是可以用来为 ... -
android开发之gallery 实现滚动一张且短距离滑动实现滚动
2011-12-19 18:50 1933首先gallery的特点就不用多说了吧,惯性滚动、半屏翻页,但 ... -
下拉刷新
2011-10-14 15:09 1189要实现这种效果 可以参见这里https://git ... -
Android签名到底都有哪些作用?
2011-10-09 17:59 2306所有的Android应用程序都要求开发人员用一个证书进 ... -
Android 动态切换全屏和非全屏模式
2011-10-08 15:15 3481直接贴出代码: Java代码 ... -
Android开发——利用Cursor+CursorAdapter实现界面实时更新(转)
2011-09-20 15:47 3087好久没有更新博客了 ... -
Nginx使用反向代理时 Hessian 的 411 错误解决方案【转】
2011-09-15 13:48 2366问题描述: 用 Hessian 实现 web se ... -
理解 Android 本地数据存储 AP(转)
2011-05-18 14:25 1915样例应用程序 为了突出 Android 应用程序开发的本 ... -
Android 本地数据存储 API(二)(转)
2011-05-18 14:23 1990使用 SQLite 数据库 Android 通过 S ... -
Android 本地数据存储 API(三)(转)
2011-05-18 14:22 2573为私有数据使用设备的内部存储器 有了数据存储 API ... -
Android中读写文件(转)
2011-05-18 14:21 7176android中读写文件分两部 ...
相关推荐
通过合理利用`ZipFile`类,我们可以实现应用皮肤的动态切换,为用户提供个性化的体验。这个过程需要对Android的资源系统有深入的理解,并能熟练使用Java的文件操作API。同时,注意资源加载的性能优化和资源释放,以...
android应用换皮肤
在Android应用开发中,更换皮肤或主题是一种常见的用户定制化功能,可以提升用户体验,让用户根据个人喜好调整应用的视觉风格。本篇文章将深入探讨如何在Android应用中实现皮肤更换,特别是通过skin APK安装来实现这...
首先,我们需要理解Android应用皮肤的基本概念。皮肤通常由一系列图像、颜色值和布局文件组成,它们定义了应用的视觉样式。在Android中,我们可以通过改变这些资源来实现皮肤的切换。主要有以下几种方法: 1. **...
本文档介绍了一种实现Android应用更换皮肤的方法,重点在于如何将皮肤包构建成一个独立的APK文件,并在应用APK中读取并应用皮肤包中的资源。 #### 实现思路 实现Android应用更换皮肤功能需要遵循特定的步骤和条件。...
以下将详细介绍Android应用皮肤切换的基本原理、实现步骤以及相关知识点。 1. **皮肤资源** - 在Android中,皮肤主要通过改变颜色、图片、布局等资源文件来实现。这些资源通常存放在res目录下,分为不同的文件夹,...
在Android平台上实现“摇一摇换皮肤”的功能,涉及到多个技术点,包括传感器事件处理、UI动态更新以及资源管理等。下面将详细讲解这些关键知识点。 1. **传感器事件处理**: Android设备通常配备有多种传感器,如...
在Android平台上,模仿QQ更换皮肤是一项有趣的挑战,它涉及到用户界面的动态定制和主题管理。在实现这个功能的过程中,开发者需要深入理解Android系统的组件、事件监听以及数据存储机制。以下是一些关键的知识点: ...
在Android操作系统中,主题(Theme)是用户界面的重要组成部分,它定义了应用程序的整体视觉样式,包括颜色、字体、布局和图标的外观等。...理解并掌握这些知识点,将有助于开发出更加美观、个性化的Android应用。
总的来说,“Android模拟器皮肤6套”为开发者提供了丰富的设备模拟选项,有助于提升开发效率和应用质量。通过充分利用这些资源,开发者能够更好地适应Android生态系统的多样性,确保应用在广泛的设备上都能顺畅运行...
本教程将深入探讨如何在Android应用中实现实时切换界面皮肤的代码技术。 首先,我们需要理解皮肤的基本概念。在Android中,皮肤通常是指应用界面的颜色、字体、图片等视觉元素的集合。我们可以把皮肤看作是一组资源...
在Android应用开发中,除了IDE的皮肤资源,我们还可以为应用本身创建自定义主题。通过修改`styles.xml`文件,开发者可以定义不同的主题和样式,这些主题可以在整个应用中统一界面风格。例如,可以更改文字颜色、背景...
在Android应用程序开发中,换肤功能是一个常见的需求,它允许用户根据个人喜好更改应用的视觉样式。本篇文章将深入探讨如何实现这一功能,主要关注"android程序换肤之二"这个主题。通过阅读博文...
在Android应用开发中,提供可定制的主题皮肤是提升用户体验、增加用户粘性的重要手段。本文将详细介绍三种在Android中实现主题皮肤切换的方法,帮助开发者更好地理解这一技术。 首先,我们来了解一下基本概念。主题...
在Android应用程序开发中,换肤功能是一个非常受欢迎的特性,它允许用户根据个人喜好更改应用的外观和感觉。本文将探讨如何实现Android程序的换肤功能,主要关注于"android程序换肤之一"这个主题。博客链接(由于...
在Android开发中,皮肤图片(Skin)是一种常见的设计元素,用于改变应用的视觉风格和用户界面的外观。本文将深入探讨如何在Android项目中使用皮肤图片,以及它们对提升用户体验的重要性。 首先,让我们理解什么是...
”提供了一个实例,展示了如何在Android应用中实现这一功能,并且结合了动态更换皮肤的特性,使得用户体验更加丰富。 首先,我们要理解“摇一摇”功能的实现原理。Android系统提供了SensorManager类,用于管理和...
"Android 换皮肤源码.zip"可能包含了一个实现这一功能的示例项目,我们可以从这个压缩包中的两个文件名"Re_Skin1"和"Re_Skin"推测,它们可能是实现换肤功能的不同部分或者不同版本。 Android换肤技术主要涉及到以下...