編輯:關於Android編程
一般情況下,id都是安卓自動生成的。使用時只要用R.id.xx就可以了。但是,在合作開發安卓時,需要將自己開發的代碼部分打成jar包,甚至做混淆。
這就需要使用java的反射機制。在取id時使用如下類,避免了硬編碼。res文件只能乖乖的交給合作方了。當然可能還有更好的方法解決這個問題。
使用方法如:
(ImageButton) findViewById(GetItemId.getIdResIDByName(this, "title_exit"));
import java.lang.reflect.Field;
import android.content.Context;
import android.util.Log;
public class GetItemId {
public static int getItemId(Context paramContext, String paramString1,
String paramString2) {
try {
Class> localClass = Class.forName(paramContext.getPackageName()
+ ".R$" + paramString1);
Field localField = localClass.getField(paramString2);
int i = Integer.parseInt(localField.get(localField.getName())
.toString());
return i;
} catch (Exception localException) {
Log.e("getIdByReflection error", localException.getMessage());
}
return 0;
}
public static int[] getItemIdArray(Context paramContext,
String paramString1, String paramString2) {
try {
Class> localClass = Class.forName(paramContext.getPackageName()
+ ".R$" + paramString1);
Field localField = localClass.getField(paramString2);
int[] i = (int[]) localField.get(localField.getName().toString());
return i;
} catch (Exception localException) {
Log.e("getIdByReflection error", localException.getMessage());
}
return null;
}
public static int getLayoutResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "layout",
context.getPackageName());
}
public static int getIdResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "id",
context.getPackageName());
}
public static int getStringResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "string",
context.getPackageName());
}
public static int getDrawableResIDByName(Context context, String name) {
return context.getResources().getIdentifier(name, "drawable",
context.getPackageName());
}
}
實例:RGB2Grey項目運行效果圖:
線程的運行機制 1. 開啟線程過多,會消耗cpu2. 單核cpu,同一時刻只能處理一個線程,多核cpu同一時刻可以處理多個線程3. 操作系統為每個運行線程安排一
本文實例講述了Android編程實現仿優酷旋轉菜單效果。分享給大家供大家參考,具體如下:首先,看下效果:不好意思,不會制作動態圖片,只好上傳靜態的了,如果誰會,請教教我吧
問題:橫豎屏切換時Activity的生命周期?測試環境:華為mate7 package com.virglass.beyond.activity;import