Android中的資源是指非代碼部分,指外部文件。
為洛川等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及洛川網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、洛川網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
assets中保存的一般是原生的文件,例如MP3文件,Android程序不能直接訪問,必須通過AssetManager類以二進(jìn)制流的形式來讀取。
res中的資源可以通過R資源類直接訪問。
R類是自動(dòng)生成的,在該類中根據(jù)不同的資源類型生成了相應(yīng)的內(nèi)部類,該類包含了系統(tǒng)中使用到的所有資源文件的標(biāo)識(shí)。
[img]1.打包時(shí),將資源放在asset文件夾內(nèi),通過AssetsManager獲取指定資源:
目標(biāo)應(yīng)用和jar中的assets文件夾會(huì)合并,所以可以通過獲取該應(yīng)用的此類文件夾來獲取目標(biāo)資源
2.使用library項(xiàng)目
此類方法不能混淆代碼,也就是說發(fā)布時(shí)需要提供library源項(xiàng)目.在引用此lib的目標(biāo)項(xiàng)目中會(huì)看到一個(gè)包含已經(jīng)編譯成class.dex的jar文件,這個(gè)文件反編譯以后仍然是只有代碼部分。
3.使用雙重library項(xiàng)目
提供一種雙層library項(xiàng)目的方法,可以混淆代碼,但是xml與圖片資源仍然是暴露的,且發(fā)布時(shí)需要提供二級(jí)引用項(xiàng)目,操作上復(fù)雜度較高,不如直接提供jar包和資源
4.直接提供jar包和資源(分開)
依然是反射R文件,資源會(huì)被暴露給開發(fā)者。
Android 資源類型
1.字符串資源
1.普通字符串
2.字符串?dāng)?shù)組
復(fù)制代碼
resources
string-array name="planets_array"
itemaaa/item
itembbb/item
/string-array
/resources
復(fù)制代碼
獲取方式:getResources().getStringArray(R.array.planets_array)
3.復(fù)數(shù)字符串資源
某些自然語言中,不同的數(shù)字在使用方法上會(huì)有所不同,比如one book,two books。當(dāng)數(shù)量大于1時(shí),會(huì)使用不同的名詞或其它復(fù)數(shù)形式;
復(fù)制代碼
resources
plurals name="numberOfp"
item quantity="one"one person/item
item quantity="other"more persons/item
/plurals
/resources
復(fù)制代碼
quantity屬性的值除了one和other外,還可以是zero,two,few,many;
引用復(fù)數(shù)字符串:
// 引用數(shù)字為1的復(fù)數(shù)字符串
getResources().getQuantityString(R.pluarlas.numberOfp,1);
// 引用數(shù)字為其它值的復(fù)數(shù)字符串
getResources().getQuantityString(R.pluarlas.numberOfp,10,10);
4.占位符格式化字符串
常用的格式化字符串三種方法:
1.在字符串中使用引號(hào)
字符串中的值雖然可以隨意指定,但是當(dāng)遇到特殊符號(hào)時(shí)(雙引號(hào),單引號(hào))就需要采取特殊的方法來處理這些符號(hào)。
如果是單引號(hào)(')可以使用轉(zhuǎn)義符(\)或用雙引號(hào)(")將整個(gè)字符串括起來,如果是雙引號(hào),可以在雙引號(hào)前使用轉(zhuǎn)義符(\)。
resources
string name="str1""This'll work"/string This'll work
string name="str2"This\'ll work/string This'll work
string name="str3"\"apple\"/string "apple"
/resources
2.用占位符格式化字符串
使用String.format(String,Object...)方法可以格式化帶占位符的字符串,只需要在字符串中插入占位符,就可以使用String.format方法格式化字符串資源,format方法要求的占位符用%1,%,...,%n,其實(shí)第n個(gè)占位符與format方法的n+1個(gè)參數(shù)值對(duì)應(yīng);
resources
!-- $s表示該占位符被字符串替換,$d表示該占位符被整數(shù)替換 --
string name="str1"hello,%1$s!You have %2$d new message/string
/resources
String str1 =String.format(getResources().getString(R.string.str1), "ly", 17);
3.使用HTML標(biāo)簽格式化字符串資源
字符串資源支持一些HTML標(biāo)簽,因此可以直接在字符串資源中使用這些HTML標(biāo)簽格式化字符串
字符串資源支持如下的HTML標(biāo)簽
b粗體字
i斜體定
u帶下劃線的字
有時(shí)需要同時(shí)使用HTML標(biāo)簽和占位符格式化字符串,如果使用String.format方法格式化字符串,會(huì)忽略字符串中的所有HTML標(biāo)簽。為了使format方法可以格式化帶
HTML標(biāo)簽的確字符,需要使用Html.formHTML方法處理字符串;
resources
string name="hello_world"Welcome to bandroid/b/string
string name="str2"Hello,%1$s! You have b %2d new messages /b/string !--同時(shí)包含占位符和html標(biāo)簽的字符串--
/resources
由于需要使用Html.formHTML方法處理字符串,因此HTML標(biāo)簽中的 "" 需要使用 "" 表示 "" 并不需要處理
獲取字符串:
String text = String.format(getResources().getString(R.string.str2), "ly", 10);
CharSequence styledText = Html.fromHtml(text);
// 如果format的某個(gè)參數(shù)包含HTML的特殊字符,如"","",可以使用如下方式讀取字符串的值;
String escapedUsername = TextUtils.htmlEncode("");
String text1 = String.format(getResources().getString(R.string.str2), "ly", 20);
2.Layout資源
1、如果根節(jié)點(diǎn)是View,除了requestFocus標(biāo)簽外,不能添加任何子標(biāo)簽,requestFocus可能被添加到布局文件的任何View中,表示該標(biāo)簽對(duì)應(yīng)的控件在顯示時(shí)處于焦點(diǎn)狀態(tài),整個(gè)布局文件只能有一個(gè)requestFocus標(biāo)簽
2、根節(jié)點(diǎn)是ViewGroup,常用的布局都是ViewGroup的子類
3、重用布局文件
如果想重用某個(gè)布局文件,可以使用include標(biāo)簽
include layout="@layout/xx_layout" /
如果想讓一個(gè)布局文件被另一個(gè)布局文件引用(使用include標(biāo)簽),可以使用merge作為被引用布局文件的根節(jié)點(diǎn),由于merge并不會(huì)生成任何標(biāo)簽(在大量引用布局文件時(shí)不至于生成大量無用的標(biāo)簽),但是xml文件必須要有一個(gè)根節(jié)點(diǎn),因此merge所起的作用就是作為xml文件的根節(jié)點(diǎn),以使xml文件在編譯時(shí)不至于出錯(cuò),可以把merge當(dāng)成FrameLayout使用;
3.圖像資源
在圖像資源中可以存儲(chǔ)圖像文件,還可以使用xml格式的圖像資源來控件圖像的狀態(tài)和行為;
1.普通圖像資源
Drawable da = getResources().getDrawable(R.drawable.xxx);
2.xml圖像資源
xml圖像資源其實(shí)就是在drawable目錄中指定的xml文件,此種方式可以額外指定圖像的某些屬性,如圖像拉動(dòng)、排列方式;
bitmap xmlns:android=""
android:src="@drawable/ic_launcher"
android:tileMode="repeat"
/bitmap
3.Nine-Patch圖像資源
Nine-Patch圖像資源文件必須以9.png作為文件擴(kuò)展名,如abc.9.png
該圖像資源的主要作用是:防止圖像的某一部分被拉伸;確定將圖像作為背景圖的控件中內(nèi)容顯示的位置;
Android SDK本身提供了一個(gè)Draw 9-patch的工具,啟動(dòng)sdk目錄\tools\draw9patch.bat命令啟動(dòng)該工具;
可以通過此工具在png圖的四周繪制1個(gè)像素粗的直線,上邊緣和左邊緣的直線分別表示圖像在水平和垂直方向可位值的范圍。如果水平或垂直方向的某個(gè)區(qū)域不需要拉伸,則可不繪制相應(yīng)的直線;右邊緣和下邊緣的直線分別表示圖像所在控件中內(nèi)容的顯示范圍,內(nèi)容只在右邊緣和下邊緣繪制直線的區(qū)域顯示,表示內(nèi)容顯示范圍和拉伸范圍的兩給直線有一個(gè)重要區(qū)別就是表示內(nèi)容顯示范圍的直線中間不能斷開,而表示拉伸范圍的直線中間可以斷開;
Nine-Patch圖像資源與普通圖像資源引用方法相同,在引用時(shí)只寫文件名,活力.9.png;
4.XML Nine-Patch圖像資源
Nine-Patch圖像資源也有與其對(duì)應(yīng)的xml圖像資源,使用nine-patch標(biāo)簽來引用Nine-Patch格式的圖像,有一個(gè)設(shè)置抖動(dòng)的android:dither屬性;
5.圖層資源
圖層資源類似于FrameLayout不同的是FrameLayout標(biāo)簽中可以包含任意的控件,而圖層資源每一層都只有是圖像,定義圖層資源必須使用layer-list作為資源文件的根節(jié)點(diǎn),layer-list標(biāo)簽中包含多個(gè)item標(biāo)簽,每一個(gè)標(biāo)簽表示一個(gè)圖像,最后一個(gè)item標(biāo)簽顯示在最頂層;
默認(rèn)情況下,圖像會(huì)盡量充滿顯示圖像的范圍,圖像可能會(huì)有拉伸,為了避免圖像拉伸,可以在item標(biāo)簽中使用bitmap標(biāo)簽引用圖像;
復(fù)制代碼
layer-list xmlns:android=""
item
android:bottom="10dip" 底端偏移的像素
android:left="10dip" 左側(cè)偏移的像素
android:right="10dip" ...
android:top="10dip" ...
bitmap
android:gravity="center"
android:src="@drawable/hell" /
/item
/layer-list
復(fù)制代碼
某些情況下,可以使用圖層來代替FrameLayout
6.圖像狀態(tài)資源,處理控件不同狀態(tài)下的顯示狀態(tài)
復(fù)制代碼
selector xmlns:android=""
item android:drawable="@drawable/bm" android:state_focused="true"/item
item android:drawable="@drawable/bm" android:state_pressed="true"/item
item android:drawable="@drawable/bm"/item
/selector
// android:state_focused/pressed設(shè)置為true表示當(dāng)前item的drawable屬性為獲取焦點(diǎn)和按下時(shí)的drawable樣式
復(fù)制代碼
7.圖像級(jí)別(Level)資源
圖像資源狀態(tài)只能指定幾種有限的狀態(tài),可以通過圖像級(jí)別指定更多的狀態(tài);圖像級(jí)別是一個(gè)整數(shù)的區(qū)間,可以通過ImageView.setImageLevel或Drawable.setLevel方法切換不同狀態(tài)的圖像;圖像級(jí)別資源是xml文件,必須以level-list為根節(jié)點(diǎn),每一個(gè)item表示一個(gè)級(jí)別區(qū)間,下面是一個(gè)xml文件;通過ImageView.setImageLevel(level),根據(jù)level所在的區(qū)間設(shè)定顯示的圖像資源,如果level不在任一區(qū)間內(nèi)則清空ImageView當(dāng)前圖像;
level-list xmlns:android=""
item android:maxLevel="2" android:minLevel="0" android:drawable="@drawable/hell" /
item android:maxLevel="4" android:minLevel="3" android:drawable="@drawable/hell" /
/level-list
8.淡入淡出(Cross-fade)資源
也是切換兩個(gè)圖像(不支持多于兩個(gè)圖像的切換),并且使這兩個(gè)圖像以淡入淡出效果進(jìn)行切換,如電燈在開關(guān)時(shí)逐漸變亮或逐漸變暗;
transition xmlns:android=""
item android:drawable="@drawable/hell"/
item android:drawable="@drawable/hell"/
/transition
TransitionDrawable da = ...;
// 從第一張圖片切換到第二張圖片,時(shí)間效果為1秒
da.startTransition(1000);
// 從第二張圖片切換到第一張圖片,時(shí)間效果為1秒
da.reverseTransition(1000);
9.嵌入(insert)圖像資源
使用場景:要顯示的圖像要求要小于裝載圖像的View(圖小于View區(qū)域),也是通過xml資源定義,只有一個(gè)節(jié)點(diǎn)inset。
inset xmlns:android=""
android:drawable="@drawable/hell"
android:insetLeft="10dip" !--圖像距離左邊的距離,延伸--上/下/右的距離--
/inset
10.剪切(Clip)圖像資源,使用剪切圖像資源可以只顯示圖像的一部分,如可以通過此來制作進(jìn)度條;
clip xmlns:android=""
android:clipOrientation="horizontal" // 指定截取的方向
android:drawable="@drawable/hell" // 指定要截取的圖像
android:gravity="left" // 指定截取的方式,在此為從左側(cè)開始截取
/clip
ClipDrawable cd = ...;
cd.setLevel(1000);
上面ClipDrawable.setLevel(level)設(shè)置截取的圖像寬度,ClipDrawable預(yù)設(shè)了最大值10000(表示不進(jìn)行截取),最小值為0(表示不顯示);
11. 比例(Scale)圖像資源
scale xmlns:android=""
android:drawable="@drawable/hell"
android:scaleGravity="center" // 設(shè)置圖像顯示的位置
android:scaleHeight="70%" // 設(shè)置圖像顯示的高度
android:scaleWidth="80%" // 設(shè)置圖像顯示的寬度
/scale
12.形狀資源
復(fù)制代碼
shape xmlns:android=""
android:shape="rectangle" shape可以指定就矩形,oval(橢圓),line(直線),ring(圓)
corners 定義圓角
/corners
gradient
android:angle="45"
android:startColor="#000000"
android:endColor="#FFFFFF" 定義顏色漸變,從左下角到或上角
/gradient
padding 定義控件內(nèi)容到邊框的距離
/padding
stroke 定義邊線
/stroke
solid 定義填充
/solid
size 定義大小
/size
/shape
復(fù)制代碼
13.菜單資源
菜單不僅可以在onCreateContextMenu或onCreateOptionsMenu方法中通過代碼創(chuàng)建,還可以在res/menu目錄中建立相應(yīng)的菜單資源文件,并在上面兩個(gè)方法中加載菜單資源;
菜單資源文件必須以menu標(biāo)簽作為根節(jié)點(diǎn),每一個(gè)菜單項(xiàng)用一個(gè)item表示,如果要定義子菜單,可以在item標(biāo)簽中包含menu標(biāo)簽;如果想將多個(gè)菜單項(xiàng)劃為一組,可以使用group包含多個(gè)item標(biāo)簽;
復(fù)制代碼
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
復(fù)制代碼
查看MenuInflater.inflate(int,Menu)
復(fù)制代碼
/**
* Inflate a menu hierarchy from the specified XML resource.
*
* @param menuRes Resource ID for an XML layout resource to load (e.g., codeR.menu.main_activity/code)
* @param menu The Menu to inflate into. The items and submenus will be added to this Menu.
*/
public void inflate(int menuRes, Menu menu) {
XmlResourceParser parser = null;
try {
parser = mContext.getResources().getLayout(menuRes);
AttributeSet attrs = Xml.asAttributeSet(parser);
parseMenu(parser, attrs, menu);
} catch ...finally {
if (parser != null) parser.close();
}
}
復(fù)制代碼
14.樣式與主題(style/theme)
1.樣式style
android中樣式和css中樣式作用是一樣的,都是用于為界面元素定義顯示風(fēng)格,它是一個(gè)包含一個(gè)或者多個(gè)控件屬性的集合。
定義樣式需要在res/values/styles.xml中進(jìn)行定義,如下是一個(gè)樣式的定義:
style name="textViewStyle"
item name="android:textSize"22sp/item
item name="android:textColor"#FF0000/item
/style
style name="textViewStyle1" parent="textViewStyle"/style!-- 此樣式繼承自textViewStyle --
style name="textViewStyle.Livingstone"!-- 樣式繼承的另一種寫法,但不可用此寫法繼承Android自帶的定義樣式? --
item name="android:textColor"#00FF00/item
/style
所有定義的樣式都會(huì)在R文件中自動(dòng)生成一個(gè)資源ID,加一個(gè)點(diǎn)表示樣式繼承會(huì)生成上圖所示的資源id;
樣式的引用:
TextView
style="@style/textViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="hello" /
2.主題Theme
主題應(yīng)用于整個(gè)應(yīng)用或者activity,樣式應(yīng)用于具體的控件上。主題的應(yīng)用與樣式定義一樣,不同的是主題還可以設(shè)置窗口的顯示風(fēng)格;主題的引用需要在清單文件中進(jìn)行引用,如引用到整個(gè)應(yīng)用之上就需要在Application節(jié)點(diǎn)中進(jìn)行配置引用,而引用到單個(gè)Activity只需要在此Activity中進(jìn)行配置引用;
復(fù)制代碼
style name="Livingstonetheme"!--此定義是一個(gè)無Title的主題--
item name="android:windowNoTitle"true/item
item name="android:windowFullscreen"?android:windowNoTitle/item
!-- 問號(hào)表示引用此主題中android:windowNoTitle屬性的值 --
item name="android:textSize"18sp/item
/style
復(fù)制代碼
android系統(tǒng)定義了一些屬性,如android:theme="@android:style/Theme.Dialog",該主題可以讓Activity看起來像一個(gè)對(duì)話框,更多主題可以在文檔reference-android-R.style中查看。當(dāng)主題里面的樣式屬性值與樣式里面的屬性值發(fā)生沖突的時(shí)候會(huì)顯示樣式里面的值;
15.其它資源
在資源文件中還可以包括尺寸(dimen)、整數(shù)(integer)、布爾(bool) 、整形數(shù)組資源(integer-array)、資源數(shù)組(array)、顏色(color)
TypedArray ta = getResources().obtainTypedArray(int id); // 獲取數(shù)組資源,包括integer-array、array
Final總結(jié):
除了res/values目錄中的資源名,其它目錄的資源都會(huì)以文件名在R類的相應(yīng)子類中生成變量;而res/values中的資源會(huì)以name屬性值為變量名在R類的相應(yīng)子類中生成變量;
在寫前一篇文章 淺述Android Apk打包流程 的時(shí)候發(fā)現(xiàn)解壓后的apk里res的資源文件,有多于我本地項(xiàng)目中的res資源文件夾。
如果我的項(xiàng)目中依賴了Android的一些庫,比如design庫,design里面有自己的res,那么在打包我的項(xiàng)目的時(shí)候,這些res會(huì)合并一起打包。
我查看了下,我確實(shí)依賴了design等庫。
對(duì)比一下前三張圖,我本地項(xiàng)目沒有建anim、anim-v21、animator-v21(不再截圖了)等資源文件夾,但是design庫有,最終一并打包到我的項(xiàng)目中。
res目錄下的文件夾是有命名規(guī)則的,不能隨便起,為的是要適配不同的設(shè)備,而且是要做到最佳的資源匹配。
2.1、資源標(biāo)簽屬性及優(yōu)先級(jí)
除了分辨率外,同種資源之間可以有下面許多資源屬性標(biāo)簽,它們?cè)谄ヅ溥^程中是有優(yōu)先級(jí)順序的。大家可以快速瀏覽一下即可。以下資源標(biāo)簽修飾語按照優(yōu)先級(jí)從高到低的順序排列。
3、Locale(語言和區(qū)域)
例如en表示英語,fr表示法語,en-rUS表示英語和美國地區(qū)。不區(qū)分大小寫,r用于區(qū)分區(qū)域碼。
4、Layout Direction(布局方向)
ldrtl,布局方向從右到左(阿拉伯語等會(huì)這樣布局);ldltr,布局方向從左到右,是默認(rèn)的隱式值。(這就解答了我前面第二個(gè)提的問題了)
5、Smallest Screen Width(最小寬度)
swNdp,屏幕的基本尺寸。
sw320dp:適用于320 320 ldpi、320 480 mdpi、480 480 hdpi
sw600dp:適用于600 1024mdpi (7英寸的平板電腦)
sw720dp:適用于720*1280 mdpi (10英寸平板電腦)
當(dāng)你的屏幕的絕對(duì)寬度大于600dp時(shí),屏幕就會(huì)自動(dòng)調(diào)用layout-sw600dp文件夾里面的布局。這里的絕對(duì)寬度是指手機(jī)的實(shí)際寬度,即與手機(jī)是否橫屏沒關(guān)系,也就是手機(jī)較小的邊的長度。
6、Screen Width(屏幕寬度)
wNdp ,設(shè)備的可用寬度值隨著當(dāng)前是橫屏還是豎屏?xí)a(chǎn)生變化,即它表示的是當(dāng)前真實(shí)的寬度值。即當(dāng)手機(jī)豎屏?xí)r,為較小邊的長度;當(dāng)手機(jī)橫屏?xí)r,為較長邊的長度。
7、Screen Height(屏幕高度)
hNdp,與lScreen Width的使用一樣,只是這里指的是相對(duì)的高度。指手機(jī)相對(duì)放置的高度;即當(dāng)手機(jī)豎屏?xí)r,為較長邊的長度;當(dāng)手機(jī)橫屏?xí)r,為較小邊的長度。
8、Size(屏幕大?。?/p>
samll:低密度,最小布局尺寸為320 426dp
normal:中等密度,標(biāo)準(zhǔn)屏幕最小布局尺寸約為320 470dp
large:中等密度,大屏幕最小布局尺寸為480 640dp
xlarge:大于中等密度,最小布局尺寸為720 960dp?;居糜谄桨咫娔X。
該配置并不僅適用于指定設(shè)備,如果沒有匹配的資源,會(huì)選擇與之最近的。 如果所有資源均大于當(dāng)前屏幕的尺寸限定符,則系統(tǒng)不會(huì)使用這些資源,且應(yīng)用運(yùn)行時(shí)會(huì)崩潰。
9、Ratio(屏幕縱橫比)
long:寬屏
notlong:非寬屏
10、Orientation(屏幕方向)
port:豎向的
land:橫向的
square:正方形的(我也不知道這個(gè)是什么樣子的)
11、UI Mode(UI模式)
無、car、desk、 television、appliance、 watch6種模式。(其實(shí)我沒看明白是干嘛的,哈哈)
12、Night Mode(夜間模式)
night:夜間模式
notnight:非夜間模式
可以通過UiModeManager來開啟和關(guān)閉這一功能。
13、Density(屏幕像素密度)
ldpi:低密度,約120dpi;mdpi:中等密度,160dpi;hdpi:高密度,240dpi;xhdpi:超高密度,320dpi;xxhdpi:超超高密度,480dpi;xxxhdpi:超超超高密度,640dpi;nodpi:不希望以匹配設(shè)備密度的位圖資源;tvdpi:主要用于電視,約213dpi。anydpi:適用于所有密度,優(yōu)先級(jí)高于其他限定符。
14、Touch Screen(觸摸屏)
notouch:設(shè)備不帶觸摸屏
stylus:觸摸屏通過手寫筆操作
finger:觸摸屏通過手指操作
15、Keyboard(鍵盤可用性)
keysexposed:設(shè)備有可用鍵盤。如果當(dāng)前的軟鍵盤被啟用,那么即便設(shè)備沒有鍵盤或者鍵盤不可用,這個(gè)狀態(tài)仍可能有效。
keyshidden:設(shè)備有鍵盤,但當(dāng)前被隱藏,而且沒有軟鍵盤啟用。
keyssoft:設(shè)備當(dāng)前軟鍵盤啟動(dòng),即便它處于可見或不可見狀態(tài)。
16、Text Input(文本輸入法)
nokeys:設(shè)備不帶用用于文本輸入的按鍵
qwerty:設(shè)備具有標(biāo)準(zhǔn)硬鍵盤(無論是否對(duì)用戶可見)
12key:設(shè)備具有 12 鍵硬鍵盤(無論是否對(duì)用戶可見)
17、Navigation State(定位鍵可用性)
描述定位鍵是否可用,指的是光標(biāo)定位,非GPS導(dǎo)航的定位。
navexposed:定位鍵對(duì)用戶可用
navhidden:定位鍵對(duì)用戶不可用
18、Navigation Method(主要的非觸摸屏定位方式)
nonav:設(shè)備除了觸摸屏外沒有其他定位方式
dpad:設(shè)備具有用于導(dǎo)航的方向鍵
trackball:設(shè)備具有用于導(dǎo)航的軌跡球
wheel:設(shè)備有方向滾輪用于定位,不常用
19、Dimension(尺寸)
20、Version(平臺(tái)版本)
設(shè)備支持的 API 級(jí)別。例如v4 對(duì)應(yīng)于 API 級(jí)別 4,帶有 Android 1.6 或更高版本系統(tǒng)的設(shè)備。
2.2、怎么在AS中創(chuàng)建這些文件夾呢?
1. Android Annotations
Android Annotations是一個(gè)能夠加速Android開發(fā)的開源框架,它可以幫助開發(fā)者處理一些前后臺(tái)任務(wù)、rest服務(wù)、應(yīng)用類、代碼片段等,讓開發(fā)者專注于真正重要的東西。
2. ActionBarSherlok
ActionBarSherlock是一個(gè)擴(kuò)展的Android支持庫,旨在允許開發(fā)者通過一個(gè)單一的API,在所有的Android版本中都能夠非常方便地使用活動(dòng)欄設(shè)計(jì)模式。
3. Spring Android
Java開發(fā)者應(yīng)該比較熟悉,這是一個(gè)針對(duì)Android開發(fā)的Spring框架。使用最多的是RestTemplate功能,此外,AndroidAnnotations已經(jīng)支持Spring Rest Template,使得編寫REST客戶端更加容易。
4. URLImageViewHelper
如果想在應(yīng)用程序中通過URL來加載遠(yuǎn)程圖像,這是最好的選擇。URLImageViewHelper提供了輔助類,可以很容易地加載遠(yuǎn)程圖像,同時(shí)還提供了圖像緩存功能。
5. SubtlePatterns
SubtlePatterns提供了一些高質(zhì)量的紋理圖案資源,圖案都非常適合作為應(yīng)用背景,并且使用也很簡單??梢渣c(diǎn)擊這里來看如何在應(yīng)用中使用這些圖案。
6. Sliding Menu(滑動(dòng)菜單)
顧名思義,SlidingMenu是一個(gè)在Android應(yīng)用中添加滑動(dòng)菜單效果的庫,盡管網(wǎng)上還有一些其他類似的庫,但發(fā)現(xiàn)從性能和易于集成方面,SlidingMenu是最好的。
7. Android ViewPagerIndicator
一個(gè)非常棒的庫,用于在一個(gè)多頁面切換視圖中指示當(dāng)前的頁面。
8. Vogella Android教程
vogella團(tuán)隊(duì)幾乎已經(jīng)將Android開發(fā)中的所有事情做成了教程,對(duì)于開發(fā)入門非常有幫助。
9. Android-PullToRefresh
針對(duì)Android的下拉刷新庫。
10. 谷歌的Android教程
開始Android開發(fā)必備的指南、培訓(xùn)資源。
11. Commonsware Github庫
幾款A(yù)ndroid應(yīng)用開發(fā)庫,可以使開發(fā)工作更加輕松。