Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android依據名字通過反射獲取在drawable中的圖片

Android依據名字通過反射獲取在drawable中的圖片

編輯:關於Android編程

MainActivity如下:
復制代碼 代碼如下:
package cn.testreflect;
import java.lang.reflect.Field;
import android.os.Bundle;
import android.widget.ImageView;
import android.app.Activity;
/**
* Demo描述:
* 依據圖片的名字,通過反射獲取其在drawable中的ID
* 在根據此ID顯示圖片
*/
public class MainActivity extends Activity {
private ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
mImageView=(ImageView) findViewById(R.id.imageView);
getImageByReflect("yaodi");
}
//$表示內部類的意思
//所以cn.testreflect.R$drawable表示:
//drawable是cn.testreflect.R的內部類
private void getImageByReflect(String imageName){
try {
Field field = Class.forName("cn.testreflect.R$drawable").getField(imageName);
mImageView.setBackgroundResource(field.getInt(field));
} catch (Exception e) {

}

}
}

main.xml如下:
復制代碼 代碼如下:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
/>
</RelativeLayout>
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved