編輯:關於Android編程
在開發中, 我們習慣了類似下面這種方式去實現引用資源:
context.getResources().getDrawable(R.drawable.flower);但是,當我們提前知道這個資源的id,想動態去引用,而不是在id裡面固化應該怎麼辦呢? 比如某個圖片資源的id是R.drawable.test_1, 而且有序的還有test_2,test_3, 我們如何動態的去引用它們?這裡有兩種方案:直接用反射和用resource的getIdentifier()方法,它們原理都差不多利用反射實現.
第一種方法:
/** * 輸入id,返回Bitmap * @param context * @param id * @return */ public static Bitmap getBitMapById(Context context,String id){ Bitmap mBitmap=BitmapFactory.decodeResource(context.getResources(),getresourceId("test_"+id)); return mBitmap; } public static int getresourceId(String name){ Field field; try { field = R.drawable.class.getField(name); return Integer.parseInt(field.get(null).toString()); } catch (NoSuchFieldException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NumberFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } return 0; }
public static Bitmap getBitmapById(Context context,String id){ Resources res = context.getResources(); Bitmap mBitmap=BitmapFactory.decodeResource(res, res.getIdentifier(id, "drawable", "com.test.android")); return mBitmap; }
上面2種方法都能動態獲取資源,當我們知道某些資源的id是規律性的,比如前綴相同,後綴都是a-z 或者數字排序等等,就能動態構造id獲取資源,而不必每次都寫context.getResources().getDrawable(R.drawable.test_1);
希望對大家有幫助.
不願意看啰嗦的可以直接去 實現步驟 最近公司項目用到https的接口形式,對於一般的網絡請求 我們用的是http://****** 使用
完全屬於自己的新聞展示平台,展示給大家,希望大家喜歡。一、新聞的數據庫的構建腳本代碼如下:(使用的mysql5.0 數據庫)SET SQL_MODE = NO_AUTO_
Android的屏幕適配一直以來都在折磨著我們這些開發者,本篇文章以Google的官方文檔為基礎,全面而深入的講解了Android屏幕適配的原因、重要概念、解決方案及最
前言Web的架構經過多年的發展已經非常成熟了,我們常用的SSM,SSH等等,架構都非常標准。個人認為,Web服務邏輯比較清晰,目的明確,流程也相對固定,從服務器收到請求開