1、先定义attr文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="layout_bg" format="reference"/>
<attr name="layout_item_bg" format="reference"/>
<attr name="textColor" format="reference"/>
</resources>

2、定义实际的属性值文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme.Default">
<item name="layout_bg">@color/left_draw_bg</item>
<item name="layout_item_bg">@color/window_background</item>
<item name="textColor">@color/gray</item>
</style> <style name="AppTheme.Green">
<item name="layout_bg">@color/left_draw_bg</item>
<item name="layout_item_bg">@color/window_background</item>
<item name="textColor">@color/green</item>
</style> <style name="AppTheme.Red">
<item name="layout_bg">@color/left_draw_bg</item>
<item name="layout_item_bg">@color/window_background</item>
<item name="textColor">@color/red</item>
</style> </resources>

3、使用我们自定义的属性

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/layout_bg"
android:orientation="vertical">
<TextView
android:id="@+id/tv_left_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/s_117"
android:layout_marginTop="@dimen/s_117"
android:textColor="?attr/textColor"
android:text="@string/app_name" />

通过?attr/+自定义属性名引用

4、Activity调用相应的主题

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.AppTheme_Green);
setContentView(R.layout.activity_main);
initView();
}

可见android系统,让人先简单的使用主题,只要调用setTheme就可以搞定。

系统将AppTheme.Green改成了AppTheme_Green来调用。

android如何切换皮肤的更多相关文章

  1. Android应用切换皮肤功能实现(二)

    原文地址http://www.apkbus.com/forum.php?mod=viewthread&tid=149034&highlight=%E7%9A%AE%E8%82%A4 上 ...

  2. Android应用切换皮肤功能实现

    原文地址:http://www.eoeandroid.com/thread-318159-1-1.html 现在大多数android应用都支持切换皮肤的功能.比如千千静听,墨迹天气等等.本文介绍两种切 ...

  3. Android 实现切换主题皮肤功能(类似于众多app中的 夜间模式,主题包等)

    首先来个最简单的一键切换主题功能,就做个白天和晚上的主题好了. 先看我们的styles文件: <resources> <!-- Base application theme. --& ...

  4. 仿iReader切换皮肤进度条

    仿iReader切换皮肤进度条 标签(空格分隔): 自定义View [TOC] 本以为使用paint.setXfermode(new PorterDuffXfermode(Mode.XOR));可以轻 ...

  5. android 语言切换过程分析

    android 语言切换过程分析 2014-02-27 18:13 1207人阅读 评论(0) 收藏 举报 语言切换android语言切换android改变语言 最近在看一个bug,系统切换语言后,本 ...

  6. cocos2dx shader实现灰度图android后台切换回来导致图像偏移的问题

    转自:http://www.tuicool.com/articles/U3URRrI 项目中经常会遇到将一张图像处理成灰色的需求,为了节省资源,一般不会让美术再做一套同样的灰度图,通常会通过代码处理让 ...

  7. android Button 切换背景,实现动态按钮和按钮颜色渐变

        android Button 切换背景,实现动态按钮和按钮颜色渐变 一.添加android 背景筛选器selector实现按钮背景改变     1.右键单击项目->new->Oth ...

  8. Android Listview切换动画,扩展到任意view切换之间动画实现

    添加布局如下: <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2010 ...

  9. Android技术——切换视图(两)随着ViewPage达到Tab幻灯片浏览

    Android技术--切换视图(一)~(四)在资源项目:https://github.com/YongYuIT/MeiNv_Liulanqi 一.早期android(android.support.v ...

随机推荐

  1. 使用NumberPicker定制自己喜欢的Date&TimePicker

    1.NumberPicker简介: NumberPicker是Android3.0之后引入的一个控件,主要功能是用于选择一组预定义好数字的控件. 该控件主要需要指导一个用于监听当前value变化的li ...

  2. Python 2.x and 3.x String VS Bytes

    In Python 3 unicode strings are the 'regular strings' (str) and byte strings are separate objects. L ...

  3. ubunutu_install_sublime_china

    保存下面的代码到文件sublime_imfix.c(位于~目录) #include <gtk/gtkimcontext.h> void gtk_im_context_set_client_ ...

  4. HDU 1978 How many ways (DP)

    How many ways Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  5. 关于XShell的常见使用和设置以及Linux中的常见命令.

    本文部分转自:http://sundful.iteye.com/blog/704079 和 http://www.vckai.com/p/5 有时候在XShell中操作的一些命令傻傻的分不清这个命令到 ...

  6. Visual Studio Gallery

    Web Essentials :对CSS.JavaScript和HTML都提供了很多快捷的功能支持.http://vswebessentials.com/features/general Web Co ...

  7. Insert data from excel to database

    USE ESPA Truncate table dbo.Interface_Customer --Delete the table data but retain the structure exec ...

  8. 第五十四篇、OC利用AFN上传上传语音

    如果不是NSData就要想办法把语音文件转化为NSData,然后才能上传服务器. 首先我们拿到语音文件对应的NSData对象 NSData *voiceData = [message valueFor ...

  9. 第一个Apple Watch小例子

    原文在这, 不过他说的add target按照他的说法还真没找到(估计是我的眼瞎了或者是版本不一样),还有就是好记性不如烂博客,先自己能看懂就行了. 请用Single View Application ...

  10. Xcode6模拟器时BUG导致键盘无法弹出

    Xcode 6.X版本可能会出现虚拟键盘无法调出,并在控制台出现如下提示:Can't find keyplane that supports type 5 for keyboard iPhone-Po ...