Android依據(jù)名字通過反射獲取在drawable中的圖片
更新時(shí)間:2013年06月20日 15:42:52 作者:
依據(jù)圖片的名字,通過反射獲取其在drawable中的ID,在根據(jù)此ID顯示圖片,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈
MainActivity如下:
package cn.testreflect;
import java.lang.reflect.Field;
import android.os.Bundle;
import android.widget.ImageView;
import android.app.Activity;
/**
* Demo描述:
* 依據(jù)圖片的名字,通過反射獲取其在drawable中的ID
* 在根據(jù)此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");
}
//$表示內(nèi)部類的意思
//所以cn.testreflect.R$drawable表示:
//drawable是cn.testreflect.R的內(nèi)部類
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>
復(fù)制代碼 代碼如下:
package cn.testreflect;
import java.lang.reflect.Field;
import android.os.Bundle;
import android.widget.ImageView;
import android.app.Activity;
/**
* Demo描述:
* 依據(jù)圖片的名字,通過反射獲取其在drawable中的ID
* 在根據(jù)此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");
}
//$表示內(nèi)部類的意思
//所以cn.testreflect.R$drawable表示:
//drawable是cn.testreflect.R的內(nèi)部類
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如下:
復(fù)制代碼 代碼如下:
<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>
您可能感興趣的文章:
- Android 利用反射+try catch實(shí)現(xiàn)sdk按需引入依賴庫的方法
- Android 反射注解與動(dòng)態(tài)代理綜合使用詳解
- Android編程實(shí)現(xiàn)通過反射獲取資源Id的方法
- Android基于反射技術(shù)實(shí)現(xiàn)的加減乘除運(yùn)算示例
- Android通過反射實(shí)現(xiàn)強(qiáng)制停止應(yīng)用程序的方法
- 詳解Java編程中的反射在Android開發(fā)中的應(yīng)用
- Android中通過反射實(shí)現(xiàn)圓角ImageView代碼實(shí)例
- java反射android的r文件的示例
- Android 繞過反射黑名單的方法
相關(guān)文章
Android利用Document實(shí)現(xiàn)xml讀取和寫入操作
這篇文章主要為大家詳細(xì)介紹了Android利用Document實(shí)現(xiàn)xml讀取和寫入操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
Android Bitmap和Drawable的對(duì)比
這篇文章主要介紹了Android Bitmap和Drawable的對(duì)比的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android如何通過手機(jī)獲取驗(yàn)證碼來完成注冊(cè)功能
注冊(cè)app或者網(wǎng)絡(luò)帳號(hào)的時(shí)候,經(jīng)常需要手機(jī)獲取驗(yàn)證碼,來完成注冊(cè)功能,那么android如何通過手機(jī)獲取驗(yàn)證碼來完成注冊(cè)功能,代碼是怎么實(shí)現(xiàn)的呢?下面看看小編給大家?guī)Я说囊欢未a分析吧2015-11-11
Android基于騰訊云實(shí)時(shí)音視頻仿微信視頻通話最小化懸浮
這篇文章主要為大家詳細(xì)介紹了Android基于騰訊云實(shí)時(shí)音視頻實(shí)現(xiàn)類似微信視頻通話最小化懸浮,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Android自定義view仿QQ的Tab按鈕動(dòng)畫效果(示例代碼)
這篇文章主要介紹了Android自定義view仿QQ的Tab按鈕動(dòng)畫效果(示例代碼),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考價(jià)值,需要的朋友可以參考下2021-01-01

