运行效果:
没有安装顺序,先安装皮肤后安装主程序完全可以。
安装成功之后在程序里面找不皮肤1/2/3启动文件,因为皮肤只能在主程序中使用。在卸载里面能看到安装上的皮肤,可以卸载掉。
好了来看下主要代码:
其它请下载附件查看。
没有安装顺序,先安装皮肤后安装主程序完全可以。
安装成功之后在程序里面找不皮肤1/2/3启动文件,因为皮肤只能在主程序中使用。在卸载里面能看到安装上的皮肤,可以卸载掉。
好了来看下主要代码:
- package com.iaiai;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import android.app.Activity;
- import android.content.Context;
- import android.content.pm.PackageInfo;
- import android.content.pm.PackageManager.NameNotFoundException;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewGroup.LayoutParams;
- import android.widget.Button;
- import android.widget.LinearLayout;
- /**
- *
- * <p>
- * Title: MainActivity.java
- * </p>
- * <p>
- * E-Mail: 176291935@qq.com
- * </p>
- * <p>
- * QQ: 176291935
- * </p>
- * <p>
- * Http: iaiai.iteye.com
- * </p>
- * <p>
- * Create time: 2011-10-18
- * </p>
- *
- * @author 丸子
- * @version 0.0.1
- */
- public class MainActivity extends Activity {
- private ArrayList<PackageInfo> getAllSkin() {
- ArrayList<PackageInfo> skinList = new ArrayList<PackageInfo>();
- List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
- for (PackageInfo p : packs) {
- if (isSkinPackage(p.packageName)) {
- skinList.add(p);
- }
- }
- return skinList;
- }
- private boolean isSkinPackage(String packageName) {
- String rex = "com.iaiai\\w";
- Pattern pattern = Pattern.compile(rex);
- Matcher matcher = pattern.matcher(packageName);
- return matcher.find();
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- final LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
- ((Button) findViewById(R.id.def))
- .setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- layout.setBackgroundDrawable(getResources()
- .getDrawable(R.drawable.bg));
- }
- });
- ArrayList<PackageInfo> skinList = getAllSkin();
- for (int i = 0; i < skinList.size(); i++) {
- try {
- final Context friendContext = createPackageContext(
- skinList.get(i).packageName,
- Context.CONTEXT_IGNORE_SECURITY);
- Button btn = new Button(this);
- btn.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
- LayoutParams.WRAP_CONTENT));
- btn.setText(friendContext.getText(R.string.app_name));
- btn.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- layout.setBackgroundDrawable(friendContext
- .getResources().getDrawable(R.drawable.bg));
- }
- });
- layout.addView(btn);
- } catch (NameNotFoundException e) {
- e.printStackTrace();
- }
- }
- }
- }
其它请下载附件查看。