Android反射獲取資源 id通用工具類

2021-07-16 18:56:35 字數 2070 閱讀 8758

下面直接給出**:這個工具也包含了通過反射獲取物件、判斷是否存在某個類,在我們自定義控制項的時候用到了attrs,然而並沒有直接獲取該資源的反射,我們如果想獲取styleable的話可以通過先獲取style的id,取其0下標代表第乙個型別。比如:

我在attrs中定義了乙個控制項屬性:

一般的情況我們是通過

typedarray a = context.obtainstyledattributes(attrs, r.styleable.circularprogress, defstyleattr, 0);
這種方式獲取styleable,在反射中我們可以通過

typedarray a = context.obtainstyledattributes(attrs, new int, defstyleattr, 0);
方式獲取。

package com.bojoy.ycsdktw.util;

import android.content.context;

/** * @author luzhenyu

* 資源反射類

* getviewid - 獲取控制項id

* getlayoutid - 獲取布局id

* getstringid - 獲取字串id

* getdrawableid - 獲取資源id

* getstyleid - 獲採樣式id

* getdimenid - 獲取尺寸id

* getarrayid - 獲取陣列資源id

* getcolorid - 獲取顏色id

* getanimid - 獲取動畫資源id

* isclassfounded - 判斷類是否存在

* getobjectbyclassname - 根據類名獲取物件

* */

public class reflectutil

public static int getviewid(context context, string name)

public static int getlayoutid(context context, string name)

public static int getstringid(context context, string name)

public static int getdrawableid(context context, string name)

public static int getstyleid(context context, string name)

public static int getdimenid(context context, string name)

public static int getarrayid(context context, string name)

public static int getcolorid(context context, string name)

public static int getanimid(context context, string name)

public static boolean isclassfounded(string classname)

catch (classnotfoundexception e) }

public static object getobjectbyclassname(string classname)

catch (classnotfoundexception e) catch (instantiationexception e) catch (illegalacces***ception e)

return null;

}}

【歡迎上碼】

Android中通過反射獲取資源Id

在將自己寫的工具打成.jar包的時候,有時候會需要引用到res中的資源,這時候不能將資源一起打包,只能通過反射機制動態的獲取資源.特別用在自己定義乙個工具將其打成.jar包時,特別注意資源的獲取 1 封裝成乙個工具類 package com.cp.utils import android.conte...

Android中通過反射獲取資源Id

在將自己寫的工具打成.jar包的時候,有時候會需要引用到res中的資源,這時候不能將資源一起打包,只能通過反射機制動態的獲取資源.特別用在自己定義乙個工具將其打成.jar包時,特別注意資源的獲取 1 封裝成乙個工具類 package com.cp.utils import android.conte...

android 資源ID規則

在使用listactivity的時候會遇到使用android預設id名稱的時候,例如 android id list 我們在新建乙個資源的時候,我們需要給這個資源附乙個id,例如 id textname 我們在引用乙個資源的時候,需要提供他的id,例如 style font1 在這裡總結一下id的使...