android 如何依赖android:sharedUserId更换皮肤Skin

来源:技术人生 责任编辑:栏目编辑 发表时间:2013-07-02 03:29 点击:
  为了更好的UI体验,不错的App都会有几套不错的SKIN提供给用户来选择,以下是两个比较简单的工程,一个为主工程.apk,一个为皮肤.apk:
先看皮肤:
AndroidMainfest.xml
 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.tal.skin"
      android:versionCode="1"
      android:versionName="1.0"
      android:sharedUserId="com.tal.skinmain">①
    <uses-sdk android:minSdkVersion="7" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Skin"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
 
   注释:① android:sharedUserId = “com.tal.skinmain” 通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访问其他APK的数据目录下的数据库和文件.就像访问本程序的数据一样.
然后再皮肤工程里面放置两张图片,来显示替换皮肤样式。skin1.png,skin2.png
皮肤工程无需activity界面即可;
主工程:
AndroidMainfest.xml按照正常写法即可,无需配置什么东东,当时在设置皮肤的需要这样写上:
Activity.java
 package com.tal.skinmain;
import com.tal.skin.R;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
 *
 * @author Tal
 * @time  2011-5-9下午09:32:47
 * @Email dangzhengtao@gmail.com
 * @tag   可以更换皮肤的主工程
 */
public class SkinMain extends Activity {
 
 LinearLayout  linearLayout;
 TextView textview;
 Context ctx;
 Button bt1,bt2,bt3;
 boolean flag = true;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        textview = (TextView)findViewById(R.id.id_skin_textview);
        textview.setText("皮肤一");
        linearLayout = (LinearLayout)findViewById(R.id.id_skin_linearlayout);
       
        linearLayout.setBackgroundColor(Color.BLUE);
       
        try {
        

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Android 完全退出程序
      • 原创:Android应用开发-Andorid歌词秀,含源码
      • android 屏幕保护
      • Android手机软件汉化教程---第四课 dex文件汉化
      • 众多Android 开源项目推荐,给力工作给力学习
      • Android Audio代码分析4
      • Android得到已安装的应用程序信息!
      • Android开发者指南(29) —— USB Host and Accessory
      • Android成长的幕后推手:工程师鲁宾
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1