Android应用实现更换皮肤功能
来源:互联网 发布:淘宝签证办理 编辑:程序博客网 时间:2024/05/16 16:20
Android应用实现更换皮肤功能
Category:etensoft Time:2012-12-18 20:37 点击:286 次
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; impor
- 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;
- 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();
- }
- }
- }
- }
http://www.1tnet.com/tech/android/2012/1218/287.html
- Android应用实现更换皮肤功能
- Android实现更换皮肤功能
- Android实现更换皮肤功能
- apk分享: Android应用更换皮肤功能的实现思路教程。
- Android应用切换皮肤功能实现
- 轻松实现Android 更换皮肤(主题)
- 轻松实现Android 更换皮肤(主题)
- 轻松实现Android 更换皮肤(主题)
- 轻松实现Android更换皮肤(主题)
- 轻松实现Android 更换皮肤(主题)
- android----------更换皮肤
- Android更换皮肤
- Android更换皮肤解决方案
- Android 皮肤的更换
- android应用与系统的皮肤更换--1
- 教程分享:如何给Android应用更换皮肤
- Android更换头像功能实现
- Android更换头像功能实现
- jdk和jre下目录和文件的作用详解
- Linux下禅道项目管理软件安装
- 使用KGDB调试Linux内核
- DEL命令居然无法删除文件夹!
- less CSS——好的解释和网址的收集
- Android应用实现更换皮肤功能
- Ubuntu evince 不能通过chrome打开链接
- MySQL服务器部署nagios监控
- C++ 倒排索引的实现
- 泄露你的JavaScript技术很烂的五个表现
- HP 450 安装ubuntu12.10
- 搭建内核开发调试环境
- 为何在JDK安装路径下存在两个JRE?
- 数据库增长到一定程度后的瘦身,优化问题