導航:首頁 > 操作系統 > androiddrawable資源

androiddrawable資源

發布時間:2022-07-13 18:19:46

A. android 怎麼判定使用的drawable資源是hdpi還是mdpi的

hdpi還是mdpi的是根據密度(DPI)區分的。
一般情況下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。
DPI的計算方式:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int densityDpi = dm.densityDpi;

B. Android drawable文件夾圖片怎麼分配

drawable文件下主要存放APP資源文件,包括XML,圖片等。
drawable下主要存放XML。
drawable-h、drawable-x等文件下主要存放不同的解析度的圖片。比如你有一個箭頭的圖片,但是可能在低解析度下顯示還行,高解析度下失真了,這個時候你可以在相應解析度下的drawable文件下存放不同解析度的但名稱都是 arrow.png的圖片。安卓系統會自動讀取不同解析度的。

C. 在Android的應用工程文件中,res目錄下的這四個drawable目錄放置的各是什麼樣的圖片資源有什麼不同

Android中,將不同的圖片放到不同的drawable目錄下

解析度的匹配規則如下:

  1. drawable-mdpi 320 * 480

  2. drawable-hdpi 480*800

  3. drawable-xhdpi 720 * 1280

  4. drawable-xxhdpi 1080 * 1920

  5. drawable-xxxhdpi 1080+

不同解析度的手機會,會載入不同目錄下的資源,如果手機的分辨不是這個,android會找最近的一個文件夾。

D. Android怎麼繪制Drawable資源(Drawable引用的是selector)

定義在XML中的一個可繪制資源,它能夠用指定的距離嵌入到另一個可繪制資源中。這種資源可在View對象需要的背景比它的實際邊界小的時候使用。
文件位置(FILE LOCATION):

res/drawable/filename.xml

文件名被用於資源ID。

編譯資源的數據類型(COMPILED RESOURCE
DATATYPE):

資源指向一個InsetDrawable對象。

資源引用(RESOURCE
REFERENCE):

java代碼中:R.drawable.filename

在XML中:@[package:]drawable/filename

E. android 判斷資源id是color還是drawable

findViewById是我們獲取layout中各種View 對象比如按鈕、標簽、ListView和ImageView的便利方法。顧名思義,它需要一個int參數:資源id。
資源id非常有用。Android回自動為每個位於res目錄下的資源分配id,包括各種圖片文件、xml文中的」@+id」對象。res的子目錄幾乎總是固定的,比如每次都能見到的:drawable-xxxx、layout、values,以及不常見的:anim、xml、row、color。
Android教科書上告訴你:
res/drawable/用來存放圖片文件;
res/layout/用來存放布局定義文件;
res/values/用來存放一些變數、參數等文件。
這都是我們已經知道的。此外,Android會為res目錄下的所有資源分配id,其主要的分配原則是:
drawable中的圖片文件總是每個文件一個資源id。
Xml文件中每個使用android:id=」@+id/xxx」的view都會被分配一個未用的資源id。
其他更復雜的規則也許每個人都會補充一些。
在 ADK 的API 中,有許多方法其實都會使用資源id作為參數,比如 getDrawable 方法 :
getResources().getDrawable(R.drawable.sendsms_bk));
從字面上看,getResouces方法返回一個android.content.res.Resources對象。
getDrawalbe方法返回一個Drawable對象,我們知道這就是一張圖片。
getDrawable方法使用的參數就是資源id。
但是,這些int型的資源id到底是些什麼數字?或者它們都放在哪裡。如果你夠細心,你可以在gen目錄的R.java文件中找到它們。每個16進制整型id都有一個很O-O 的屬性名字,它們都是public static final的,建議你不要手動去修改它們。這些資源id位於不同類層次結構中,你仔細看一看,會發現其中的一些規律,比如,drawable類中包含資源id其實代表了res/drawable目錄中的圖片文件;layout類中包含的資源id其實是代表了在res/layout目錄中的xml文件 ;id類中包含的資源id其實是代表了布局xml文件中使用了 android:id=」@+id/xxx」的widget對象——當然如果你使用的是」@+Tyre/xxx」,則Android編譯時會在R.java 中創建一個叫做 Tyre 的類。
通過上面的了解,我們發現資源id就是以「R.」開頭的變數或屬性——因為它都定義在R類中——這個類跟android.R不是同一個R,它們不在同一個包層次中。前者是定義了android框架自己的資源,比如:android.R.layout.simple_expandable_list_item_1、android.R.layout.simple_expandable_list_item_2。這些資源你使用過嗎?有時間不妨試試。而另一個R就是我們自己的R了,定義了我們自己的資源id。我們可以用面向對象的R.xxx.yyy的方式使用資源id,當然也可以直接用16進制數來使用它們。
資源id在Android中是如此重要,因此我們只要獲得了資源id,即可獲得資源。因為某些情況下,我們不能使用某個常量作為資源id(因為我們想用一個變數代替它),所以只能採用兩種方式動態獲取資源id:
1、反射
java的反射是如此強大,以至於我們在走投無路時總是想起它。我們來看一段代碼:
try{
Field field=R.drawable.class.getField(type);
int i= field.getInt(new R.drawable());
Log.d(tag,i+"");
return i;
}catch(Exception e){
Log.e(tag,e.toString());
return R.drawable.unknow;
}
type是一個變數,他的可能值會是「close」、「edit」、「icon」等。我們通過java的反射類Field 去訪問 R.drawable 類下面的某個欄位。實際上,我們知道在R.drawable 下的欄位就是 res.drawable-xxxx 目錄下的圖片文件的資源id。因此運行上面的這段代碼,其實就是通過一個字元串去獲取對應圖片文件的資源id。比如,當 type 的值為「icon」時,上面的代碼會獲得res.drawable-xxxx目錄下的 icon.png 圖片文件的資源id並返回給我們。我們通過資源 id 來把圖片顯示在ImageView中就是順理成章的事了。
2、使用Resources 類的 getIdentifier方法
使用反射畢竟還是麻煩。如果同樣的事情用 android.content.res.Resources 類來干,就是兩句話而已:
Resources res=getResources();
return res.getIdentifier(type,"drawable",getPackageName());
getResources方法是來自於contenxt(也就是Activity類),它直接可以返回一個Resouces對象。而Resouces的getIdentifier方法可以返回R.java中的任何資源id,當然,你必須指定3個參數:欄位名,類名,包名。包名指定了的 全限定名的包名部分,如果R 的全限定名為 android.R 或者 com.company.R,則包名在這里就是「android」或「com.company」。getPackageName其實是this.getPackageName(),它直接返回本類的包名。
類名則是資源所屬的類。比如我們知道的,在R.java 類中的幾個固定的類:drawable、id、string、layout等,在它們下邊又定義了許多資源id。
欄位名則是資源id的名字。比如這個資源id定義: public static final int del=0x7f020002;
del就是一個資源id的名字,0x7f020002則是它的16進制值。
通過3個參數,getIdentifier 方法就可以通過比較動態的方式獲得資源id。

F. android 開發中R.drawable的問題

  1. 圖片放在res資源文件夾下的drawable文件夾下面,不過現在更多的把圖片放在mipmap文件夾里

  2. 設置背景的話兩種方法,一種在layout布局裡把圖片設為背景

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/root_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/ic_bg">

    </RelativeLayout>

  3. 第二種代碼裡面設置

    (RelativeLayout) bg = (RelativeLayout) findViewById(R.id.root_view);

    bg.setBackgroundResource(R.drawable.ic_bg);

G. android中常見的Drawable資源有哪些

drawable資源共有10種,包括Bitmap文件、Nine-Path文件、Layer List、State List、Level list、Transition Drawable、Inset Drawable、Clip Drawable、Scale Drawable、Shape Drawable

H. android studio中的drawable-v24怎麼創建

我們一般將APP的icon放在minmap文件夾下,其他圖片資源放在drawable文件夾下。下面我們看下AndroidStudio下如何創建drawable、drawable-hdpi、drawable-mdpi、drawable-xhdpi、drawable-xxhdpi。
1、切換到Project視圖下,找到對應moudle的res文件夾,右擊「res」--》 「new」--》「Android resource directory」,彈出「New Resource Directory」對話框。
2、按照上圖的一二三步驟,點擊第三步後,會出現一下內容,選擇要添加drawable的解析度,點擊「ok」按鈕即可。

I. android eclipse開發 drawable文件夾 資源文件大小寫沖突

Android res文件夾下的所有文件不能有大寫字元,如果出現大寫字元會導致R.java無法生成
Android項目是的R文件是由系統生成的資源的定義,如果出同沖突,錯誤,那麼android 無法生成R文件 ,即使有時候你xml文件沒有錯誤,他都無法生成。針對此問題,總結以下幾個方面的原因:

1. xml本身有錯誤
R.java這個文件是會自動生成的,但是如果你不小心xml文件寫錯了,或者不小心在編輯xml的時候點擊了run(其實這個時候會運行這個xml文件,會生成一個同名的xml文件,後綴為xx.out.xml),然後正巧你游clear了一下項目,你可能會發現gen下面的R.java的文件沒有了,這個在剛開始的時候很氣人,真不知道怎麼解決,後來發現,只要xml文件有問題,系統是絕對不會給你自動生成這個R.java文件,因為他要參照你的每張xml里的數據來生成R.java,所以自然就生成不了了。雖然知道了原因但是問題頭疼,假如項目的layout xml文件有幾十個,這個時候怎麼辦,難道要一個一個xml的看嗎,呵呵,其實也不是,把console中的信息clear一下,然後再clear項目一下,這個時候,console中會有很多紅色的信息,參照這個肯定能准確的找到哪個文件報錯了。
下面這個事誤運行了xml文件,可以看到gen的包不是空的,R.java文件也存在,並且明確的支出了是layout包中的錯誤

2. 編碼格式不正確
有時候由於編碼格式問題,造成無法生成R文件,此時後,把編碼格式變成GBK或者UTF--8即可

三,配置問題,轉義字元的問題
因為XML有些特殊字元需要轉義,例如"<>&;"' "等

與androiddrawable資源相關的資料

熱點內容
騰訊雲連接不上伺服器 瀏覽:221
不能用來表示演算法的是 瀏覽:859
6軸機器人演算法 瀏覽:890
手機主題照片在哪個文件夾 瀏覽:294
安卓手機後期用什麼軟體調色 瀏覽:628
cad修改快捷鍵的命令 瀏覽:242
好錢包app怎麼登錄不了 瀏覽:859
樹莓派都用python不用c 瀏覽:757
access文件夾樹的構造 瀏覽:662
安卓多指操作怎麼設置 瀏覽:658
linux樹形目錄 瀏覽:727
平方根的簡單演算法 瀏覽:898
千牛訂單頁面信息加密取消 瀏覽:558
單片機自製紅外遙控燈 瀏覽:719
伺服器最小配置怎麼弄 瀏覽:853
ibm伺服器硬體如何升級 瀏覽:923
全球程序員節點贊 瀏覽:986
php函數傳遞數組 瀏覽:632
人工峰群演算法的目標函數 瀏覽:469
如何刪加密文檔 瀏覽:105