文档详情

android类似QQ换皮肤.doc

发布:2016-08-07约3.92千字共6页下载文档
文本预览下载声明
android类似QQ换皮肤,实现思路,apk资源共享 2011-09-14 15:27:31 ????我来说两句?0 我要投稿??? [字体:小?大] 1、首先在AndroidManifest.xml中的manifest中加入android:sharedUserId=共享id----具有相同id的apk可以不受限制访问。 2、根据包名创建Context,在Activity下有提供方法createPackageContext能够依据包名创建。 3、获取共享的Apk资源。 注意: 1、Activity中的findViewById()与View中的findViewById()区别在于: Activity需要对setContextView()后的Layout才能由findViewById()获得View。 View只需要有对象即可由findViewById()获得在View中包含id的View。 2、在资源获取方面主要获取那个apk下的资源主要是由Context决定。 ? 在资源apk没安装前: 资源文件安装后: 主apk包名:com.app.share; 资源apk包名:com.app.share2; 主Activity中获取资源apk中R,并且生成Layout对id为button1的按钮设置监听。 Java代码? public class StartAct extends Activity {??? ??? /** Called when the activity is first created. */??? ??? @Override??? ??? public void onCreate(Bundle savedInstanceState) {牋?牋牋牋?super.onCreate(savedInstanceState);牋?//牋牋牋?setContentView(R.layout.main);牋?牋牋牋?Button btn = new Button(this);牋?牋牋牋?btn.setText(TO SECOND);牋?牋牋牋?btn.setOnClickListener(new OnClickListener() {牋?牋牋牋牋牋牋牋?牋牋牋牋牋?@Override牋?牋牋牋牋牋?public void onClick(View v) {牋?牋牋牋牋牋牋牋?// TODO Auto-generated method stub牋?牋牋牋牋牋牋牋?Intent intent = new Intent(StartAct.this, SecontAct.class);牋?牋牋牋牋牋牋牋?StartAct.this.startActivity(intent);牋?牋牋牋牋牋?}牋?牋牋牋?});牋?牋牋牋?this.setContentView(btn);牋?牋牋牋?try {牋牋牋 牋牋牋牋牋?Context other = this.createPackageContext(com.app.share2, CONTEXT_IGNORE_SECURITY|CONTEXT_INCLUDE_CODE);牋?牋牋牋牋牋?Class? c = other.getClassLoader().loadClass(com.app.share2.R);牋?牋牋牋牋牋?Class?[] cl = c.getClasses();牋?牋牋牋牋牋?int b =0;牋?牋牋牋牋牋?for (int i = 0; i cl.length; i++) {牋?牋牋牋牋牋牋牋?Log.d(TAG, cl[i].getSimpleName());牋?牋牋牋牋牋牋牋?Field field[] = cl[i].getFields();牋?牋牋牋牋牋牋牋?for (int j = 0; j field.length; j++) {牋?牋牋牋牋牋牋牋牋牋?Log.d(TAG, NAME:+field[j].getName()+--VALUE:+field[j].getInt(field[j].getName()));牋?牋牋牋牋牋牋牋牋牋?if(field[j].getName().equals(button1)) {牋?牋牋牋牋牋牋牋牋牋牋牋?b
显示全部
相似文档