最近很多小夥伴想了解getresources,今天小編專門整理了getresources的相關內容分享給大家,讓我們一起看看吧。
本文目錄一覽:
- 1、怎麽調用getresource方法
- 2、Android開發中,如何在靜態類中使用getResources()獲取圖片資源.
- 3、Android中的是getResource()方法返回什麽?
怎麽調用getresource方法
使用getIdentifier()方法可以方便的獲各應用包下的指定資源ID。
主要有兩種方法:
(1)方式一
Resources resources = context.getResources();
int indentify = resources.getIdentifier(org.loveandroid.androidtest:drawable/icon",null,null);
if(indentify0){
icon = resources.getDrawable(indentify);
}
第一個參數格式是:包名 + : +資源文件夾名 + / +資源名;是這種格式 然後其他的可以為null
(2)方式二
Resources resources = context.getResources();
intindentify= getResources().getIdentifier("icon", "drawable", "org.anddev.android.testproject");
第一個參數為ID名,第二個為資源屬性是ID或者是Drawable,第三個為包名。
如果找到了,返回資源Id,如果找不到,返回0 。
寫了一個方法:獲取資源ID,如果不存在返回0
static int getResourceId(Context context,String name,Stringtype,String packageName){
ResourcesthemeResources=null;
PackageManager pm=context.getPackageManager();
try {
themeResources=pm.getResourcesForApplication(packageName);
returnthemeResources.getIdentifier(name, type, packageName);
} catch(NameNotFoundException e) {
e.printStackTrace();
}
return0;
}
從數據庫裏讀取圖片名稱,然後調用圖片。直接用R.drawable.?無法調用。查了好多地
主要由兩種方法,個人建議第二種。
1.不把圖片放在res/drawable下,而是存放在src某個package中(如:com.drawable.resource),這種情況下的調用方法為:
String path = "com/drawable/resource/imageName.png";
InputStream is = getClassLoader().getResourceAsStream(path);
Drawable.createFromStream(is, "src");
2. 如果還是希望直接使用res/drawable中的圖片,就需要通過下麵的方法了:
假設創建工程的時候,填寫的package名字為:com.test.image
int resID = getResources().getIdentifier("imageName", "drawable","com.test.image");
Drawable image = getResources().getDrawable(resID);
Android開發中,如何在靜態類中使用getResources()獲取圖片資源.
獲取resource需要context對象,所以你這個問題有如下幾個解決思路
1,使用Context作為參數,例如public
static
getResourcesStatic(Context
context,
int
resId)
2,使用Context作為成員變量,在構造函數中接受一個Context參數,並賦值給自己成員變量
這樣在此對象生命期內,都可以使用.
不過並不推薦這種做法,因為傳入的Context多數情況下是Activity,往往會附著很多資源,如背景圖片等,無法GC,導致過高的內存占用.可以用下麵的改進方式:
3,使用WeakReference
保存context的弱引用
使用時要注意判斷ref.get()是否為null
Android中的是getResource()方法返回什麽?
返回的是Resources這個類對象,然後你可以通過它來加載res目錄(如下圖)下的資源,如加載圖片:getResources().getDrawable(R.drawable.cancel);加載字符串:getResources().getString(R.string.accept_info);
res目錄
以上就是getresources的相關介紹,希望能對大家有所幫助。
本文到此結束,希望對大家有所幫助呢。