android应用程序制定皮肤

转载 2012年03月30日 16:36:07

在实现程序功能的同时,如果能让程序界面更加美观,有锦上添花之妙.
先说思路:
1)皮肤也就是相关的资源文件单独放置在某个工程中,一种皮肤一个工程文件.一个工程包括N多的资源文件,多个工程间资源的关系是,文件名,资源ID等完全一样.不同的可能是图片资源,style等的设置不一样.
2)皮肤工程在AndroidManifest.xml中配置android:sharedUserId="com.eric.skinmain".
     表明允许com.eric.skinmain访问本工程中的资源文件. com.eric.skinmain是主项目的包名
3)主项目通过 this.createPackageContext("com.eric.blackskin",Context.CONTEXT_IGNORE_SECURITY);
获取到com.eric.blackskin对应的Context,然后通过返回的context对象就可以访问到com.eric.blackskin中的任何资源,如同访问自身的资源一样.

注:记得先安装皮肤工程对应的apk文件

 

public class main extends Activity {
        /** Called when the activity is first created. */
        private LinearLayout showBg;
        private Button btn;
        private Context green_skin_Context = null;
        private Context black_skin_Context = null;
        int flag = 0;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                showBg = (LinearLayout) findViewById(R.id.linear_layout_1);
                try {
                        green_skin_Context = this.createPackageContext(
                                        "com.eric.greenskin", Context.CONTEXT_IGNORE_SECURITY);
                } catch (NameNotFoundException e) {
                        e.printStackTrace();
                }
                try {
                        black_skin_Context = this.createPackageContext(
                                        "com.eric.blackskin", Context.CONTEXT_IGNORE_SECURITY);
                } catch (NameNotFoundException e) {
                        e.printStackTrace();
                }
                btn = (Button) findViewById(R.id.btn_change_skin);
                btn.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                                if (flag == 0) {
                                        showBg.setBackgroundDrawable(green_skin_Context
                                                        .getResources().getDrawable(R.drawable.bg));
                                        btn.setBackgroundDrawable(green_skin_Context
                                                        .getResources().getDrawable(R.drawable.btn_normal));
                                       
                                        flag = 1;
                                } else if (flag == 1) {
                                        showBg.setBackgroundDrawable(black_skin_Context
                                                        .getResources().getDrawable(R.drawable.bg));
                                        btn.setBackgroundDrawable(black_skin_Context
                                                        .getResources().getDrawable(R.drawable.btn_normal));
                                        flag = 0;
                                }

                        }

                });
        }
}


Android更换皮肤解决方案

Android更换皮肤解决方案 转载请注明出处:IT_xiao小巫 本篇博客要给大家分享的一个关于Android应用换肤的Demo,大家可以到我的github去下载demo,以后博文涉及到的代码均...
  • wwj_748
  • wwj_748
  • 2015年06月03日 18:43
  • 10578

轻松实现Android 更换皮肤(主题)

目前很多app都具有换肤功能,可以根据用户自己的喜好定制自己的界面,比如新浪微博,网易新闻等等。今天这里我就是要介绍一种机制实现app换肤。 我找了几款app换肤的应用,换肤基本都是更换了界面的...
  • qqiabc521
  • qqiabc521
  • 2015年03月03日 18:22
  • 2382

轻松实现Android 更换皮肤(主题)

目前很多app都具有换肤功能,可以根据用户自己的喜好定制自己的界面,比如新浪微博,网易新闻等等。今天这里我就是要介绍一种机制实现app换肤。 我找了几款app换肤的应用,换肤基本都是更换了界面的Ico...
  • yuanzeyao2008
  • yuanzeyao2008
  • 2015年01月04日 14:17
  • 9170

Android动态换肤(一、应用内置多套皮肤)

动态换肤在很多android应用中都有使用,用户根据自己的喜好设置皮肤主题,可以增强用户使用应用的舒适度。 Android换肤可以分为很多种,它们从使用方式,用户体验以及项目框架设 计上...
  • u010163442
  • u010163442
  • 2016年04月07日 10:42
  • 2615

Android开发之APP换肤简介(一)

本文转载自其它博客作为笔记研究 ,感谢原文作者!
  • itluochen
  • itluochen
  • 2016年08月11日 11:59
  • 2126

android:自定义控件皮肤

android中当系统自带的控件无法满足用户的需求时,可以通过自定义的方式 下面通过代码实现对Button按钮自定义点击效果 MainActivity: package com.example.kan...
  • boom784702727
  • boom784702727
  • 2016年03月28日 21:27
  • 309

Android插件换肤功能实战

Android App实现换肤有很多方式,有的是通过内置资源的方式,有的是通过设置相同签名并且AndroidManifest.xml中配置相同android:sharedUserId使得两个apk运行...
  • goodlixueyong
  • goodlixueyong
  • 2016年04月08日 00:53
  • 1676

Android Studio 自定义皮肤主题和背景

转自:http://mp.weixin.qq.com/s/vuowHh75yF5gv1m0CeVkpw?ref=myread Android Studio 自定义皮肤主题和背景 新...
  • yueguanyun
  • yueguanyun
  • 2017年02月06日 16:27
  • 1491

定制Android模拟器skin

Android模拟器提供了6个标准的skin供我们使用,分别对应HVGA(横屏/竖屏)、QVGA(横屏/竖屏)、WQVGA以及WVGA,我们只要在启动模拟器时使用 -skin 参数就可以载入相应的皮肤...
  • littlegirlya
  • littlegirlya
  • 2013年12月09日 13:37
  • 3082

Android-skin-support 一款用心去做的Android 换肤框架

Android-skin-support: 一款用心去做的Android 换肤框架, 极低的学习成本, 极好的用户体验.只需要两行代码, 就可以实现换肤, 你值得拥有!!!...
  • ximsfei
  • ximsfei
  • 2017年01月17日 21:03
  • 5074
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android应用程序制定皮肤
举报原因:
原因补充:

(最多只允许输入30个字)