Android èµæºç±»å
1.å符串èµæº
>>1.æ®éå符串
>>2.å符串æ°ç»
å¤å¶ä»£ç
<resources>
<string-array name="planets_array">
<item>aaa</item>
<item>bbb</item>
</string-array>
</resources>
å¤å¶ä»£ç
è·åæ¹å¼:getResources().getStringArray(R.array.planets_array)
>>3.å¤æ°å符串èµæº
æäºèªç¶è¯è¨ä¸ï¼ä¸åçæ°åå¨ä½¿ç¨æ¹æ³ä¸ä¼ææä¸åï¼æ¯å¦one book,two booksãå½æ°é大äº1æ¶ï¼ä¼ä½¿ç¨ä¸åçåè¯æå
¶å®å¤æ°å½¢å¼ï¼
å¤å¶ä»£ç
<resources>
<plurals name="numberOfp">
<item quantity="one">one person</item>
<item quantity="other">more persons</item>
</plurals>
</resources>
å¤å¶ä»£ç
quantityå±æ§çå¼é¤äºoneåotherå¤ï¼è¿å¯ä»¥æ¯zero,two,few,many;
å¼ç¨å¤æ°å符串:
// å¼ç¨æ°å为1çå¤æ°å符串
getResources().getQuantityString(R.pluarlas.numberOfp,1)ï¼
// å¼ç¨æ°å为å
¶å®å¼çå¤æ°å符串
getResources().getQuantityString(R.pluarlas.numberOfp,10ï¼10)ï¼
>>4.å ä½ç¬¦æ ¼å¼åå符串
常ç¨çæ ¼å¼åå符串ä¸ç§æ¹æ³:
ãã>>1.å¨å符串ä¸ä½¿ç¨å¼å·
å符串ä¸çå¼è½ç¶å¯ä»¥éææå®ï¼ä½æ¯å½éå°ç¹æ®ç¬¦å·æ¶(åå¼å·ï¼åå¼å·)å°±éè¦éåç¹æ®çæ¹æ³æ¥å¤çè¿äºç¬¦å·ã
å¦ææ¯åå¼å·(')å¯ä»¥ä½¿ç¨è½¬ä¹ç¬¦(\)æç¨åå¼å·(")å°æ´ä¸ªå符串æ¬èµ·æ¥ï¼å¦ææ¯åå¼å·ï¼å¯ä»¥å¨åå¼å·å使ç¨è½¬ä¹ç¬¦(\)ã
<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ï¼å
¶å®ç¬¬n个å ä½ç¬¦ä¸formatæ¹æ³çn+1个åæ°å¼å¯¹åºï¼
<resources>
<!-- $s表示该å ä½ç¬¦è¢«å符串æ¿æ¢ï¼$d表示该å ä½ç¬¦è¢«æ´æ°æ¿æ¢ -->
<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æ ç¾æ ¼å¼åå符串èµæº
å符串èµæºæ¯æä¸äºHTMLæ ç¾ï¼å æ¤å¯ä»¥ç´æ¥å¨å符串èµæºä¸ä½¿ç¨è¿äºHTMLæ ç¾æ ¼å¼åå符串
å符串èµæºæ¯æå¦ä¸çHTMLæ ç¾
<b>ç²ä½å
<i>æä½å®
<u>带ä¸å线çå
ææ¶éè¦åæ¶ä½¿ç¨HTMLæ ç¾åå ä½ç¬¦æ ¼å¼åå符串ï¼å¦æ使ç¨String.formatæ¹æ³æ ¼å¼åå符串ï¼ä¼å¿½ç¥å符串ä¸çææHTMLæ ç¾ã为äºä½¿formatæ¹æ³å¯ä»¥æ ¼å¼å带
HTMLæ ç¾çç¡®å符ï¼éè¦ä½¿ç¨Html.formHTMLæ¹æ³å¤çå符串ï¼
<resources>
<string name="hello_world">Welcome to <b>android</b></string>
<string name="str2">Hello,%1$s! You have <b> %2d new messages </b></string> <!--åæ¶å
å«å ä½ç¬¦åhtmlæ ç¾çå符串-->
</resources>
ç±äºéè¦ä½¿ç¨Html.formHTMLæ¹æ³å¤çå符串ï¼å æ¤HTMLæ ç¾ä¸ç "<" éè¦ä½¿ç¨ "<" 表示 ">" 并ä¸éè¦å¤ç
è·åå符串:
String text = String.format(getResources().getString(R.string.str2), "ly", 10);
CharSequence styledText = Html.fromHtml(text);
// å¦æformatçæ个åæ°å
å«HTMLçç¹æ®å符ï¼å¦"<","&"ï¼å¯ä»¥ä½¿ç¨å¦ä¸æ¹å¼è¯»åå符串çå¼;
String escapedUsername = TextUtils.htmlEncode("");
String text1 = String.format(getResources().getString(R.string.str2), "ly", 20);
2.Layoutèµæº
1ãå¦ææ ¹èç¹æ¯Viewï¼é¤äº<requestFocus>æ ç¾å¤ï¼ä¸è½æ·»å ä»»ä½åæ ç¾ï¼<requestFocus>å¯è½è¢«æ·»å å°å¸å±æ件çä»»ä½Viewä¸ï¼è¡¨ç¤ºè¯¥æ ç¾å¯¹åºçæ§ä»¶å¨æ¾ç¤ºæ¶å¤äºç¦ç¹ç¶æï¼æ´ä¸ªå¸å±æ件åªè½æä¸ä¸ª<requestFocus>æ ç¾
2ãæ ¹èç¹æ¯ViewGroupï¼å¸¸ç¨çå¸å±é½æ¯ViewGroupçåç±»
3ãéç¨å¸å±æ件
å¦ææ³éç¨æ个å¸å±æ件ï¼å¯ä»¥ä½¿ç¨<include>æ ç¾
<include layout="@layout/xx_layout" />
å¦ææ³è®©ä¸ä¸ªå¸å±æ件被å¦ä¸ä¸ªå¸å±æ件å¼ç¨(使ç¨<include>æ ç¾)ï¼å¯ä»¥ä½¿ç¨<merge>ä½ä¸ºè¢«å¼ç¨å¸å±æ件çæ ¹èç¹ï¼ç±äº<merge>并ä¸ä¼çæä»»ä½æ ç¾(å¨å¤§éå¼ç¨å¸å±æ件æ¶ä¸è³äºçæ大éæ ç¨çæ ç¾)ï¼ä½æ¯xmlæ件å¿
é¡»è¦æä¸ä¸ªæ ¹èç¹ï¼å æ¤<merge>æèµ·çä½ç¨å°±æ¯ä½ä¸ºxmlæ件çæ ¹èç¹ï¼ä»¥ä½¿xmlæ件å¨ç¼è¯æ¶ä¸è³äºåºéï¼å¯ä»¥æ<merge>å½æ<FrameLayout>使ç¨ï¼
3.å¾åèµæº
å¨å¾åèµæºä¸å¯ä»¥åå¨å¾åæ件ï¼è¿å¯ä»¥ä½¿ç¨xmlæ ¼å¼çå¾åèµæºæ¥æ§ä»¶å¾åçç¶æåè¡ä¸ºï¼
>>1.æ®éå¾åèµæº
Drawable da = getResources().getDrawable(R.drawable.xxx);
>>2.xmlå¾åèµæº
xmlå¾åèµæºå
¶å®å°±æ¯å¨drawableç®å½ä¸æå®çxmlæ件ï¼æ¤ç§æ¹å¼å¯ä»¥é¢å¤æå®å¾åçæäºå±æ§ï¼å¦å¾åæå¨ãæåæ¹å¼ï¼
<bitmap xmlns:android="
http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_launcher"
android:tileMode="repeat" >
</bitmap>
>>3.Nine-Patchå¾åèµæº
Nine-Patchå¾åèµæºæ件å¿
须以9.pngä½ä¸ºæ件æ©å±åï¼å¦abc.9.png
该å¾åèµæºç主è¦ä½ç¨æ¯:é²æ¢å¾åçæä¸é¨å被æ伸ï¼ç¡®å®å°å¾åä½ä¸ºèæ¯å¾çæ§ä»¶ä¸å
容æ¾ç¤ºçä½ç½®ï¼
Android SDKæ¬èº«æä¾äºä¸ä¸ªDraw 9-patchçå·¥å
·ï¼å¯å¨<sdkç®å½>\tools\draw9patch.batå½ä»¤å¯å¨è¯¥å·¥å
·;
å¯ä»¥éè¿æ¤å·¥å
·å¨pngå¾çåå¨ç»å¶1个åç´ ç²çç´çº¿ï¼ä¸è¾¹ç¼å左边ç¼çç´çº¿åå«è¡¨ç¤ºå¾åå¨æ°´å¹³ååç´æ¹åå¯ä½å¼çèå´ãå¦ææ°´å¹³æåç´æ¹åçæ个åºåä¸éè¦æ伸ï¼åå¯ä¸ç»å¶ç¸åºçç´çº¿ï¼å³è¾¹ç¼åä¸è¾¹ç¼çç´çº¿åå«è¡¨ç¤ºå¾åæå¨æ§ä»¶ä¸å
容çæ¾ç¤ºèå´ï¼å
容åªå¨å³è¾¹ç¼åä¸è¾¹ç¼ç»å¶ç´çº¿çåºåæ¾ç¤ºï¼è¡¨ç¤ºå
容æ¾ç¤ºèå´åæ伸èå´ç两ç»ç´çº¿æä¸ä¸ªéè¦åºå«å°±æ¯è¡¨ç¤ºå
容æ¾ç¤ºèå´çç´çº¿ä¸é´ä¸è½æå¼ï¼è表示æ伸èå´çç´çº¿ä¸é´å¯ä»¥æå¼ï¼
Nine-Patchå¾åèµæºä¸æ®éå¾åèµæºå¼ç¨æ¹æ³ç¸åï¼å¨å¼ç¨æ¶åªåæ件åï¼æ´»å.9.pngï¼
>>4.XML Nine-Patchå¾åèµæº
Nine-Patchå¾åèµæºä¹æä¸å
¶å¯¹åºçxmlå¾åèµæºï¼ä½¿ç¨<nine-patch>æ ç¾æ¥å¼ç¨Nine-Patchæ ¼å¼çå¾åï¼æä¸ä¸ªè®¾ç½®æå¨çandroid:ditherå±æ§ï¼
>>5.å¾å±èµæº
å¾å±èµæºç±»ä¼¼äº<FrameLayout>ä¸åçæ¯<FrameLayout>æ ç¾ä¸å¯ä»¥å
å«ä»»æçæ§ä»¶ï¼èå¾å±èµæºæ¯ä¸å±é½åªææ¯å¾åï¼å®ä¹å¾å±èµæºå¿
须使ç¨<layer-list>ä½ä¸ºèµæºæ件çæ ¹èç¹ï¼<layer-list>æ ç¾ä¸å
å«å¤ä¸ª<item>æ ç¾ï¼æ¯ä¸ä¸ªæ ç¾è¡¨ç¤ºä¸ä¸ªå¾åï¼æåä¸ä¸ª<item>æ ç¾æ¾ç¤ºå¨æ顶å±ï¼
é»è®¤æ
åµä¸ï¼å¾åä¼å°½éå
满æ¾ç¤ºå¾åçèå´ï¼å¾åå¯è½ä¼ææ伸ï¼ä¸ºäºé¿å
å¾åæ伸ï¼å¯ä»¥å¨<item>æ ç¾ä¸ä½¿ç¨<bitmap>æ ç¾å¼ç¨å¾åï¼
å¤å¶ä»£ç
<layer-list xmlns:android="
http://schemas.android.com/apk/res/android" >
<item
android:bottom="10dip" åºç«¯å移çåç´
android:left="10dip" 左侧å移çåç´
android:right="10dip" ...
android:top="10dip"> ...
<bitmap
android:gravity="center"
android:src="@drawable/hell" />
</item>
</layer-list>
å¤å¶ä»£ç
æäºæ
åµä¸ï¼å¯ä»¥ä½¿ç¨å¾å±æ¥ä»£æ¿<FrameLayout>
>>6.å¾åç¶æèµæºï¼å¤çæ§ä»¶ä¸åç¶æä¸çæ¾ç¤ºç¶æ
å¤å¶ä»£ç
<selector xmlns:android="
http://schemas.android.com/apk/res/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设置为true表示å½åitemçdrawableå±æ§ä¸ºè·åç¦ç¹åæä¸æ¶çdrawableæ ·å¼
å¤å¶ä»£ç
>>7.å¾å级å«(Level)èµæº
å¾åèµæºç¶æåªè½æå®å ç§æéçç¶æï¼å¯ä»¥éè¿å¾å级å«æå®æ´å¤çç¶æï¼å¾å级å«æ¯ä¸ä¸ªæ´æ°çåºé´ï¼å¯ä»¥éè¿ImageView.setImageLevelæDrawable.setLevelæ¹æ³åæ¢ä¸åç¶æçå¾åï¼å¾å级å«èµæºæ¯xmlæ件ï¼å¿
须以<level-list>ä¸ºæ ¹èç¹ï¼æ¯ä¸ä¸ªitem表示ä¸ä¸ªçº§å«åºé´ï¼ä¸é¢æ¯ä¸ä¸ªxmlæ件ï¼éè¿ImageView.setImageLevel(level)ï¼æ ¹æ®levelæå¨çåºé´è®¾å®æ¾ç¤ºçå¾åèµæºï¼å¦ælevelä¸å¨ä»»ä¸åºé´å
åæ¸
空ImageViewå½åå¾åï¼
<level-list xmlns:android="
http://schemas.android.com/apk/res/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)èµæº
ä¹æ¯åæ¢ä¸¤ä¸ªå¾å(ä¸æ¯æå¤äºä¸¤ä¸ªå¾åçåæ¢)ï¼å¹¶ä¸ä½¿è¿ä¸¤ä¸ªå¾å以淡å
¥æ·¡åºææè¿è¡åæ¢ï¼å¦çµç¯å¨å¼å
³æ¶éæ¸å亮æéæ¸åæï¼
<transition xmlns:android="
http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/hell"/>
<item android:drawable="@drawable/hell"/>
</transition>
TransitionDrawable da = ...;
// ä»ç¬¬ä¸å¼ å¾çåæ¢å°ç¬¬äºå¼ å¾çï¼æ¶é´ææ为1ç§
da.startTransition(1000);
// ä»ç¬¬äºå¼ å¾çåæ¢å°ç¬¬ä¸å¼ å¾çï¼æ¶é´ææ为1ç§
da.reverseTransition(1000);
>>9.åµå
¥(insert)å¾åèµæº
使ç¨åºæ¯:è¦æ¾ç¤ºçå¾åè¦æ±è¦å°äºè£
è½½å¾åçView(å¾å°äºViewåºå)ï¼ä¹æ¯éè¿xmlèµæºå®ä¹ï¼åªæä¸ä¸ªèç¹insetã
<inset xmlns:android="
http://schemas.android.com/apk/res/android"
android:drawable="@drawable/hell"
android:insetLeft="10dip" > <!--å¾åè·ç¦»å·¦è¾¹çè·ç¦»ï¼å»¶ä¼¸-->ä¸/ä¸/å³çè·ç¦»-->
</inset>
>>10.åªå(Clip)å¾åèµæºï¼ä½¿ç¨åªåå¾åèµæºå¯ä»¥åªæ¾ç¤ºå¾åçä¸é¨åï¼å¦å¯ä»¥éè¿æ¤æ¥å¶ä½è¿åº¦æ¡ï¼
<clip xmlns:android="
http://schemas.android.com/apk/res/android"
android:clipOrientation="horizontal" // æå®æªåçæ¹å
android:drawable="@drawable/hell" // æå®è¦æªåçå¾å
android:gravity="left" > // æå®æªåçæ¹å¼ï¼å¨æ¤ä¸ºä»å·¦ä¾§å¼å§æªå
</clip>
ClipDrawable cd = ...;
cd.setLevel(1000);
ä¸é¢ClipDrawable.setLevel(level)设置æªåçå¾å宽度ï¼ClipDrawableé¢è®¾äºæ大å¼10000(表示ä¸è¿è¡æªå)ï¼æå°å¼ä¸º0(表示ä¸æ¾ç¤º)ï¼
>>11. æ¯ä¾(Scale)å¾åèµæº
<scale xmlns:android="
http://schemas.android.com/apk/res/android"
android:drawable="@drawable/hell"
android:scaleGravity="center" // 设置å¾åæ¾ç¤ºçä½ç½®
android:scaleHeight="70%" // 设置å¾åæ¾ç¤ºçé«åº¦
android:scaleWidth="80%" > // 设置å¾åæ¾ç¤ºç宽度
</scale>
>>12.å½¢ç¶èµæº
å¤å¶ä»£ç
<shape xmlns:android="
http://schemas.android.com/apk/res/android"
android:shape="rectangle" > shapeå¯ä»¥æå®å°±ç©å½¢ï¼oval(æ¤å)ï¼line(ç´çº¿)ï¼ring(å)
<corners> å®ä¹åè§
</corners>
<gradient
android:angle="45"
android:startColor="#000000"
android:endColor="#FFFFFF" > å®ä¹é¢è²æ¸åï¼ä»å·¦ä¸è§å°æä¸è§
</gradient>
<padding> å®ä¹æ§ä»¶å
容å°è¾¹æ¡çè·ç¦»
</padding>
<stroke> å®ä¹è¾¹çº¿
</stroke>
<solid> å®ä¹å¡«å
</solid>
<size> å®ä¹å¤§å°
</size>
</shape>
å¤å¶ä»£ç
13.èåèµæº
èåä¸ä»
å¯ä»¥å¨onCreateContextMenuæonCreateOptionsMenuæ¹æ³ä¸éè¿ä»£ç å建ï¼è¿å¯ä»¥å¨res/menuç®å½ä¸å»ºç«ç¸åºçèåèµæºæ件ï¼å¹¶å¨ä¸é¢ä¸¤ä¸ªæ¹æ³ä¸å è½½èåèµæºï¼
èåèµæºæ件å¿
须以<menu>æ ç¾ä½ä¸ºæ ¹èç¹ï¼æ¯ä¸ä¸ªèå项ç¨ä¸ä¸ª<item>表示ï¼å¦æè¦å®ä¹åèåï¼å¯ä»¥å¨<item>æ ç¾ä¸å
å«<menu>æ ç¾ï¼å¦ææ³å°å¤ä¸ªèå项å为ä¸ç»ï¼å¯ä»¥ä½¿ç¨<group>å
å«å¤ä¸ª<item>æ ç¾ï¼
å¤å¶ä»£ç
@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;
}
å¤å¶ä»£ç
æ¥çMenuInflater.inflate(int,Menu)
å¤å¶ä»£ç
/**
* Inflate a menu hierarchy from the specified XML resource.
*
* @param menuRes Resource ID for an XML layout resource to load (e.g., <code>R.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();
}
}
å¤å¶ä»£ç
14.æ ·å¼ä¸ä¸»é¢(style/theme)
>>1.æ ·å¼style
androidä¸æ ·å¼åcssä¸æ ·å¼ä½ç¨æ¯ä¸æ ·çï¼é½æ¯ç¨äºä¸ºçé¢å
ç´ å®ä¹æ¾ç¤ºé£æ ¼ï¼å®æ¯ä¸ä¸ªå
å«ä¸ä¸ªæè
å¤ä¸ªæ§ä»¶å±æ§çéåã
å®ä¹æ ·å¼éè¦å¨res/values/styles.xmlä¸è¿è¡å®ä¹ï¼å¦ä¸æ¯ä¸ä¸ªæ ·å¼çå®ä¹ï¼
<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>
ææå®ä¹çæ ·å¼é½ä¼å¨Ræ件ä¸èªå¨çæä¸ä¸ªèµæºIDï¼å ä¸ä¸ªç¹è¡¨ç¤ºæ ·å¼ç»§æ¿ä¼çæä¸å¾æ示çèµæºid;
æ ·å¼çå¼ç¨:
<TextView
ããstyle="@style/textViewStyle"
ããandroid:layout_width="fill_parent"
ããandroid:layout_height="wrap_content"
ããandroid:text="hello" />
>>2.主é¢Theme
主é¢åºç¨äºæ´ä¸ªåºç¨æè
activityï¼æ ·å¼åºç¨äºå
·ä½çæ§ä»¶ä¸ã主é¢çåºç¨ä¸æ ·å¼å®ä¹ä¸æ ·ï¼ä¸åçæ¯ä¸»é¢è¿å¯ä»¥è®¾ç½®çªå£çæ¾ç¤ºé£æ ¼ï¼ä¸»é¢çå¼ç¨éè¦å¨æ¸
åæ件ä¸è¿è¡å¼ç¨ï¼å¦å¼ç¨å°æ´ä¸ªåºç¨ä¹ä¸å°±éè¦å¨Applicationèç¹ä¸è¿è¡é
ç½®å¼ç¨ï¼èå¼ç¨å°å个Activityåªéè¦å¨æ¤Activityä¸è¿è¡é
ç½®å¼ç¨ï¼
å¤å¶ä»£ç
<style name="Livingstonetheme"><!--æ¤å®ä¹æ¯ä¸ä¸ªæ Titleç主é¢-->
ãã<item name="android:windowNoTitle">true</item>
ãã<item name="android:windowFullscreen">?android:windowNoTitle</item>
ãã<!-- é®å·è¡¨ç¤ºå¼ç¨æ¤ä¸»é¢ä¸android:windowNoTitleå±æ§çå¼ -->
ãã<item name="android:textSize">18sp</item>
</style>
å¤å¶ä»£ç
androidç³»ç»å®ä¹äºä¸äºå±æ§ï¼å¦android:theme="@android:style/Theme.Dialog"ï¼è¯¥ä¸»é¢å¯ä»¥è®©Activityçèµ·æ¥åä¸ä¸ªå¯¹è¯æ¡ï¼æ´å¤ä¸»é¢å¯ä»¥å¨ææ¡£reference->android->R.styleä¸æ¥çãå½ä¸»é¢éé¢çæ ·å¼å±æ§å¼ä¸æ ·å¼éé¢çå±æ§å¼åçå²çªçæ¶åä¼æ¾ç¤ºæ ·å¼éé¢çå¼ï¼
15.å
¶å®èµæº
å¨èµæºæ件ä¸è¿å¯ä»¥å
æ¬å°ºå¯¸(dimen)ãæ´æ°(integer)ãå¸å°(bool) ãæ´å½¢æ°ç»èµæº(integer-array)ãèµæºæ°ç»(array)ãé¢è²(color)
TypedArray ta = getResources().obtainTypedArray(int id); // è·åæ°ç»èµæºï¼å
æ¬integer-arrayãarray
Finalæ»ç»:
é¤äºres/valuesç®å½ä¸çèµæºåï¼å
¶å®ç®å½çèµæºé½ä¼ä»¥æ件åå¨Rç±»çç¸åºåç±»ä¸çæåéï¼ères/valuesä¸çèµæºä¼ä»¥nameå±æ§å¼ä¸ºåéåå¨Rç±»çç¸åºåç±»ä¸çæåéï¼