рдпрд╣ рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА Android рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реЛрдЧрд╛:
- рдкреЙрдкрдЕрдк рдореЗрдиреВ рдмрдирд╛рдПрдБ
- рдбрд┐рдЬрд╛рдЗрди рд╡рд┐рдВрдбреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕
- рдиреМ-рдкреИрдЪ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рддреИрдпрд╛рд░реА
1. AdvancedHelloWorld рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВред рдЙрди рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд OS рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВ BuildTarget - Android 1.6 рдФрд░ Min SDK рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ - 3. рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдШрдирддреНрд╡ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЬреБрджрд╛рдИ рдХрд╛рдо рдХрд░реЗрдЧреА (рдПрдЪрдбреАрдкреАрдЖрдИ, mdpi, ldpi рдкрд░), рд▓реЗрдХрд┐рди рдпрд╣ рднреА Android рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рез.рел рдЕрд▓рдЧ рдирд╣реАрдВ рд░рд╣реЗрдЧрд╛ред
2. Res / рд▓реЗрдЖрдЙрдЯ / main.xml рдореЗрдВ рд╣рдо рдПрдХ рдмрдЯрди "рд╣реИрд▓реЛ рдХрд╣реЗрдВ" рдмрдирд╛рддреЗ рд╣реИрдВред
3. рдЕрджреНрднреБрдд рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕реЗрдЯ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдПрдХ рдЕрдЪреНрдЫрд╛ рдЖрдЗрдХрди рдмрдирд╛рддреЗ рд╣реИрдВред
4. рдПрдХ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреЛрд╕реНрдЯ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
Android рдПрд╕реЗрдЯ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдСрдирд▓рд╛рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдп рдмрд╣реБрдд рдХрдард┐рди рд╣реИред рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди (рд▓реЙрдиреНрдЪрд░ рдЖрдЗрдХрди), рдореЗрдиреВ рдЖрдЗрдХрди, рдмреБрдХрдорд╛рд░реНрдХ рдФрд░ рдЕрд▓рд░реНрдЯ рдЬрд▓реНрджреА рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдХреНрд░реЛрдо 6 рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИ, рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХреБрдЫ рддрддреНрд╡ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХред
рд╕рдВрд╕рд╛рдзрди рдиреЛрдЯ
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рддрд░реНрдХрд╕рдВрдЧрдд рд╡рд┐рдХрд▓реНрдк рдПрдЪрдбреАрдкреАрдЖрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╣реИ, рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рдЬрд┐рд╕реЗ mdpi рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рдВ, рд╣рдо ldpi рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рд╣реИрдВ рдФрд░ рдЖрдк рдПрдХ "рд╕реНрдиреИрдХ" рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдЕрдиреБрдХреВрд▓рди рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рд╕рднреА рдЧреНрд░рд╛рдлрд┐рдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдкрд╣рд▓реЗ рд╣реА рдмрд╕ рдЪреБрдХреЗ рд╣реЛрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдПрдВрдбреНрд░реЙрдЗрдб 1.5 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдШреЛрд╖рдгрд╛ рдХреА, рдбреНрд░реЙрдПрдмрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЧреНрд░рд╛рдлрд┐рдХ рддрддреНрд╡ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдмрд╛рдХреА рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
рдкреЙрдкрдЕрдк рдореЗрдиреВ
рдореЗрдиреВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, xml рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВред рд╣рдорд╛рд░реА рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ: res \ menu \ main_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_preferences"
android:icon="@drawable/ic_menu_preferences"
android:title="@string/menu_preferences" />
<item android:id="@+id/menu_theme"
android:icon="@drawable/ic_menu_theme"
android:title="@string/menu_theme" />
<item android:id="@+id/menu_close"
android:icon="@drawable/ic_menu_close_clear_cancel"
android:title="@string/menu_close" />
</menu>
рджреЛ рдЕрдВрдХ:
рдпрджрд┐ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреА рд╕рдВрдЦреНрдпрд╛ 6 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ 6 рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдЗрдЯрдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдиреВ рдореЗрдВ рд╕рдВрдпреБрдХреНрдд рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдорд╛рдирдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореЗрдиреВ рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрддрд░ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВред рд╕рдмрдореЗрдиреВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрдиреВ рдЯреИрдЧ рдХреЛ рддрддреНрд╡ рдХреЗ рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ "рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд" рд╣реЛрдЧрд╛ред
рдореЗрдиреВ рдмрдирд╛рддреЗ рд╕рдордп, рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рдирдХ рд╕реЗрдЯ рдореЗрдВ рдЖрдЗрдХрдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред рд╡реЗ рд╕рднреА рд╕реНрдерд╛рдкрд┐рдд SDK - android-sdk-windows \ platform \ android-1.6 \ data \ res \ drawable \ ic_menu _ * рдореЗрдВ рд╣реИрдВред Png
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдирд┐рдХрд╛рд╕ рдЖрдЗрдХрди рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдореЗрдиреВ рдЖрдЗрдЯрдо "рдереАрдо" рдЬреЛрдбрд╝рд╛, рдЬреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдХрд╛рд▓реЗ рд╕реЗ рд╕рдлреЗрдж рдФрд░ рдкреАрдЫреЗ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдЧрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдореЗрдВ рдмрд╣реБрдд рдмреБрдирд┐рдпрд╛рджреА рдХреМрд╢рд▓ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЗрд╕ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рдХрд╛ рдЦреАрдВрдЪрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЙрд╕реА Android рдПрд╕реЗрдЯ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдкрдХреЛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЖрдЗрдХрди рдорд┐рд▓реЗрдЧрд╛:
рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд░реНрдорд╛рдг onCreateOptionsMenu рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ - onOptionsItemSelected:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_preferences:
...
default:
return super.onOptionsItemSelected(item);
}
}
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛
рдФрд░ рдлрд┐рд░, рдПрдХреНрд╕рдПрдордПрд▓ рдореЗрдВ рдореБрдЦреНрдп рдХрд╛рдоред Res \ xml рдореЗрдВ settings.xml рдмрдирд╛рдПрдБ:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/settings_general">
<CheckBoxPreference
android:key="center_message"
android:title="@string/center_message"
android:summary="@string/center_message_summary"
android:persistent="true"
android:defaultValue="true"/>
<EditTextPreference
android:key="text_message"
android:title="@string/text_message"
android:summary="@string/text_message_summary"
android:defaultValue="@string/hello_world"
android:persistent="true"/>
</PreferenceCategory>
</PreferenceScreen>
рд╕рдорд░реНрдерд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╕реЗрдЯ рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмреБрдирд┐рдпрд╛рджреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛ред "рд▓рдЧрд╛рддрд╛рд░" рдЭрдВрдбреЗ рдХреЛ рд╕реЗрдЯ рдХрд░рдХреЗ, рд╣рдореЗрдВ рдмрдЪрд╛рдиреЗ / рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ рднреА рдирд╣реАрдВ рд╣реИред рдмрд╕ рд╕рд╛рдЭрд╛ рдореВрд▓реНрдп рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдореВрд▓реНрдп рдкрдврд╝реЗрдВ:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
boolean bCenter = settings.getBoolean("center_message", true);
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрдЦрдж рдХреНрд╖рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдирд┐рд░реНрднрд░рддрд╛ (рдПрдВрдбреНрд░реЙрдЗрдб: рдирд┐рд░реНрднрд░рддрд╛) рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдЪрд┐рд╣реНрдирд┐рдд "рдЕрдЧреНрд░рдгреА" рддрддреНрд╡ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдЫ рд╡рд╕реНрддреБрдУрдВ рдХреЛ "рд╢рд╛рдорд┐рд▓" рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдиреЗрд╕реНрдЯреЗрдб рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╕рд░рд▓ рдХрд╛рд░реНрдп рдЬреЛ рдЖрд╡реЗрджрди рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВред
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╣рдорд╛рд░реЗ xml рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ:
addPreferencesFromResource(R.xml.settings);
рд╡рд░реАрдпрддрд╛ рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИред AndroidManifest.xml рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, android: theme = "@ android: style / Theme.Light" рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдиреЗрд╕реНрдЯреЗрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдорд┐рд▓рддреА рд╣реИред Stackoverflow рдкрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдЪрд░реНрдЪрд╛ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЖрддреА рд╣реИ рдХрд┐, рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рд╕рдм рдХреБрдЫ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рдХрд╛рд▓реА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рд╣реИред
рдиреМ-рдкреИрдЪ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдиреМ-рдкреИрдЪ рдПрдХ рдорд╛рдирдХ рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рдВрдХрд▓реНрдк рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХрд▓-рдлрд▓рдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдорд┐рдд рдкреАрдПрдирдЬреА рдЫрд╡рд┐ рд╣реИред рдЗрд╕ рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, SDK рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбреНрд░рд╛ 9patch рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╢реАрд░реНрд╖ рдФрд░ рдмрд╛рдПрдБ рднрд╛рдЧ рдкрд░ рдПрдХ рдХрд╛рд▓реА рд░реЗрдЦрд╛ 1 рдкрд┐рдХреНрд╕реЗрд▓ рдореЛрдЯреА рд╣реЛрддреА рд╣реИ, рдЬреЛ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рджреЛрд╣рд░рд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ рдЫрд╡рд┐ рдХреЛ рдмрдбрд╝рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджрд╛рдИрдВ рдФрд░ рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛рдПрдВ "рдХрд╛рд░реНрдп рдХреНрд╖реЗрддреНрд░" рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИрдВред рдПрдХ рдирд┐рдпрдорд┐рдд рдмрдЯрди рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИред
рд╢рдмреНрджреЛрдВ рдореЗрдВ, 9patch рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╕рдордЭрд╛рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм 9patch рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рддреБрд░рдВрдд рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдорд╛рдирдХ рдмрдЯрди рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╣реИ:
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рд╣рдо AdvancedHelloWorld рдЧреИрд░-рдорд╛рдирдХ рдореЗрдВ рдмрдЯрди рдмрдирд╛рдПрдВрдЧреЗ, рд╕рд╛рдорд╛рдиреНрдп рдмрдЯрди, рджрдмрд╛рдП рдЧрдП рд░рд╛рдЬреНрдп рдФрд░ рдлреЛрдХрд╕ рдореЗрдВ рдмрдЯрди рдХреЗ рд▓рд┐рдП 3 9patch рдЪрд┐рддреНрд░ рддреИрдпрд╛рд░ рдХрд┐рдП рд╣реИрдВред рдмрд▓реНрдХрд┐ рдердХрд╛рдК, рд▓реЗрдХрд┐рди рдорд╣рд╛рди рдЕрд╡рд╕рд░реЛрдВ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИред
рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ: рд╕рднреА 9patch рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди .9.png рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдЫрд╡рд┐ рдХреЛ 9patch рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдФрд░ рд╕реАрдорд╛ рд╣реИ: рд╕рдВрд╕рд╛рдзрди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди .png рдФрд░ .9.png (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, button.png рдФрд░ button.9.png рд╕рдВрдШрд░реНрд╖) рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рд╕рдВрд╕рд╛рдзрди рдирд╛рдо - рдмрдЯрди рд╣реИ) ред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
Googlecode рдкрд░ Android рд╕рдВрдкрддреНрддрд┐ рд╕реНрдЯреВрдбрд┐рдпреЛ: http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html
рд╕рдмрдореЗрдирд╕ рдмрдирд╛рдиреЗ рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ: http://developer.android.com/guide/topics/ui/menus.html##ububu
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг: http://www.kaloer.com/android-preferences
рд╕реНрдЯрд╛рдЗрд▓ рд╕реЗрдЯрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛: http://stackoverflow.com/questions/2615528/preferenceactivity-and-theme-not-applying
рд╕реНрд░реЛрдд рдХреЛрдб