Android資源總結

2021-07-08 10:05:17 字數 3477 閱讀 1950

在android開發過程中,經常會用到各種資源:字串、顏色、樣式、……經常會被這些資源搞得暈頭轉向,容易混淆,尤其是幾種drawable型別的資源。下面對這些資源進行整理分類,讓它們的格式和功能一目了然。

android的應用資源可以分為兩大類:

- 可以通過r資源清單類訪問的資源,儲存在res目錄下。

- 無法通過r資源清單類訪問的原生資源,儲存在assets目錄下。

資源檔案目錄

1、res/values目錄

不建議在同一分資源檔案中定義各種值,勢必增加程式的維護難度,最好使用不同的檔案來存放不同型別的值。如下:

strings.xml(字串資源,布林資源bools.xml,整型資源integers.xml)

<?xml version="1.0" encoding="utf-8"?>

hello world!

colors.xml(顏色資源)

<?xml version="1.0" encoding="utf-8"?>

#ffffff

#000000

dimens.xml(尺寸資源)

<?xml version="1.0" encoding="utf-8"?>

16dp

16dp

20sp

arrays.xml(陣列資源:普通型別陣列array,字串陣列string-array,整型陣列integer-array)

<?xml version="1.0" encoding="utf-8"?>

@color/white

@color/black

@string/hello_world

//activity中使用普通陣列

typedarray colors = res.obtaintypedarray(r.array.color_array);

view.setbackgrounddrawable(colors.getdrawable(position));

//activity中使用字串、整型陣列

string texts = getresources().getstringarray(r.array.string_arr);

styles.xml(樣式資源,還有主題theme資源,定義格式通style一樣,主題資源對整個應用中的activity或指定的activity起作用,而style可以用於單個view元件)

<?xml version="1.0" encoding="utf-8"?>

2、res/drawable目錄

drawable資源是android中使用最廣泛的資源,也是最靈活的一種資源,可以直接使用.png、.jpg、.gif、.9.png等資源,還可以使用能被系統編譯成drawable子類的xml檔案。drawable資源通常儲存在res/drawable目錄,也可儲存在res/drawable-ldpi、res/drawable-mdpi、res/drawable-hdpi、res/drawable-xhdpi目錄下

drawable資源

//直接放在drawable目錄下,就會出現在r清單中
edit_font_color.xml(statelistdrawable資源,drawable物件會根據目標元件的狀態的改變而自動切換)

<?xml version="1.0" encoding="utf-8"?>

my_bar.xml(layerdrawable資源,包含乙個drawable物件陣列,系統按索引從小到大依次從下到上繪製這些drawable)

<?xml version="1.0" encoding="utf-8"?>

用這個drawable定義乙個拖動條

效果如下

my_shape.xml(shapedrawable資源,定義基本的幾何圖形,可以用作定義幾何邊框)

<?xml version="1.0" encoding="utf-8"?>

效果如下

my_clip.xml(clipdrawable資源,從其他資源上擷取乙個片段,引數表示從**開始擷取,擷取方式。此drawable有乙個setlevel(int level)方法,0<= level<=10000,表示擷取的區域,可以用timer動態改變level值,達到徐徐張開得效果,也可以用clipdrawable定義進度條)

<?xml version="1.0" encoding="utf-8"?>

3、res/anim目錄

my_anim.xml(animationdrawable資源,也是一種drawable資源,代表乙個動畫,支援逐幀動畫和補間動畫,可以進行透明度、縮放、位移、旋轉變換)

<?xml version="1.0" encoding="utf-8"?>

//activity中使用animationdrawable資源

imageview image = (imageview)findviewbyid(r.id.image);

animation anim = animationutils.loadanimation(this, r.anim.my_anim);

anim.setfillafter(true);//保留動畫結束狀態

image.startanimation(amin);

4、res/layout目錄

存放android的layout資源,這個從第一天學android就開始用,此處就不贅述。

5、res/menu目錄

後面補充

6、res/raw目錄上面已經介紹了assets,此處著重於assets目錄下資源的使用。

//activity中使用assert下的資源

assetmanager am = getassets();

trycatch(exception e)

Android資源 布局資源

一 概述 1 android的圖形介面展示可以分為三層 activity window和view,而view又可以分為view 元件,如textview 和viewgroup 布局,如線性布局 2 布局是指元件在activity中的呈現方式,有兩種方式建立布局 a 利用xml檔案,activity通...

Android資源保護

我們參考proguard obfuscator的方式,對apk中資源檔名使用簡短無意義名稱進行替換,給破解者製造困難,以做到資源的相對安全。我們可以通過修改aapt 在生成resources.arsc和 ap 時把資源檔案的名稱替換掉,從而保護資源。aapt編譯資源的 我們發現修改aapt在處理資源...

Android 資源引用

命名空間 命名空間即為避免不同開發包變數衝突,如甲公司 乙公司均出了開發包,兩個開發包大量變數名相同,為避免衝突,兩個公司都給開發包規定了命名空間,引用開發包中的變數時必須新增命名空間名 android為例 xml檔案中第乙個元素 設定命名空間xmlns android 則android layou...