package com.my;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.text.style.ParagraphStyle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.view.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.my.R;
public class MainApplicationActivity extends Activity implements OnClickListener {
TextView tvShow;
ArrayList<PackageInfo> skinList = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//根据项目包名得到所有皮肤包
skinList = getAllSkin();
initView();
}
void initView() {
tvShow = (TextView)findViewById(R.id.tvShow);
findViewById(R.id.btnNormal).setOnClickListener(this);
}
/**
* 得到所有表情包
*
* @return
*/
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;
}
/**
* 判断是否为表情包
*
* @param packageName
* @return
*/
private boolean isSkinPackage(String packageName) {
String rex = "com.myskin.\\w";
Pattern pattern = Pattern.compile(rex);
Matcher matcher = pattern.matcher(packageName);
return matcher.find();
}
int i = 0;
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnNormal:
Context friendContext = null;
try {
//得到皮肤项目上下文
friendContext = this.createPackageContext(skinList.get(i).packageName,
Context.CONTEXT_IGNORE_SECURITY);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//通过context 得到填充activity的布局文件 注意:布局文件是从skin1 或 skin2 项目中获取的 此处是关键
View view = View.inflate(friendContext, R.layout.main, null);
//指定Activity布局
setContentView(view);
//初始化布局
initView();
i++;
if (i >= skinList.size()) {
i = 0;
}
break;
default:
break;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android 实现皮肤打包成apk的demo.zip
共72个文件
class:22个
xml:12个
png:9个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 153 浏览量
2022-06-16
14:44:11
上传
评论
收藏 1.3MB ZIP 举报
温馨提示
Android 实现皮肤打包成apk的demo.zip
资源推荐
资源详情
资源评论
收起资源包目录
Android 实现皮肤打包成apk的demo.zip (72个子文件)
Android 实现皮肤打包成apk的demo
皮肤打包成apk
skin2
bin
classes.dex 2KB
skin2.apk 176KB
com
myskin
n2
R$layout.class 379B
R$id.class 432B
R$drawable.class 411B
R$attr.class 325B
R.class 539B
R$string.class 412B
R$color.class 384B
resources.ap_ 173KB
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
bg.jpg 162KB
values
strings.xml 169B
color.xml 110B
drawable-mdpi
icon.png 3KB
layout
main.xml 613B
assets
default.properties 362B
gen
com
myskin
n2
R.java 989B
proguard.cfg 1KB
src
.project 841B
.classpath 280B
AndroidManifest.xml 406B
Skin1
bin
classes.dex 2KB
Skin1.apk 64KB
com
myskin
n1
R$layout.class 379B
R$id.class 432B
R$drawable.class 411B
R$attr.class 325B
R.class 539B
R$string.class 412B
R$color.class 384B
resources.ap_ 61KB
.classpath.bak 341B
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
bg.jpg 50KB
values
strings.xml 173B
color.xml 113B
drawable-mdpi
icon.png 3KB
layout
main.xml 613B
assets
default.properties 362B
gen
com
myskin
n1
R.java 989B
proguard.cfg 1KB
src
.project 841B
.classpath 280B
AndroidManifest.xml 411B
MainApplication
bin
classes.dex 5KB
MainApplication.apk 228KB
com
my
R$layout.class 358B
R$id.class 411B
R$drawable.class 390B
R$attr.class 304B
MainApplicationActivity.class 3KB
R.class 483B
R$string.class 391B
R$color.class 363B
resources.ap_ 224KB
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
bg.jpg 213KB
values
strings.xml 189B
color.xml 112B
drawable-mdpi
icon.png 3KB
layout
main.xml 611B
assets
default.properties 362B
gen
com
my
R.java 982B
proguard.cfg 1KB
src
com
my
MainApplicationActivity.java 3KB
.project 851B
.classpath 280B
AndroidManifest.xml 729B
共 72 条
- 1
资源评论
BryanDing
- 粉丝: 299
- 资源: 5584
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功