Android рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рд╡рд┐рдЬреЗрдЯ


рдирдорд╕реНрддреЗ рдкреНрд░рд┐рдп рд╣рд░рдЬрд┐рддреЗрд▓реАред рдпрд╣ рд▓реЗрдЦ рдПрдХ "рд╣рд╛рдЗрд▓рд╛рдЗрдЯреЗрдб" рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдПрдХ рд╡рд┐рдЬреЗрдЯ рдЬрд┐рд╕реЗ рдкрд╛рдВрдЪ-рд╕реНрдерд┐рддрд┐ рдбреА-рдкреИрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЯреНрд░реИрдХрдмреЙрд▓ рдпрд╛ рдмрдЯрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рдпрд╣ рд▓реЗрдЦ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдкрд╛рдардХ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╣реА рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдПрдВрдбреНрд░реЙрдЗрдб рд╣реИрд▓реЛ, рджреБрдирд┐рдпрд╛ рд▓рд┐рдЦ тАЛтАЛрдЪреБрдХрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдардВрдб рдХреЗ рдореМрд╕рдо рдореЗрдВ рдХреИрдкреЗрд╕рд┐рдЯрд┐рд╡ рд╕реНрдХреНрд░реАрди рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рддреЛ рдЪрд▓рд┐рдП рд╣рдо рд╡реНрдпрд╛рдкрд╛рд░ рд╕реЗ рджреВрд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред


рд╡рд┐рдЬреЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓


рдЖрдЗрдП рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреЗрдЯред Xml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реЗрд╕ / xml / рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдирд╛рдПрдВред
<? xml version ="1.0" encoding ="utf-8" ? > <br> < appwidget-provider <br> xmlns:android ="http://schemas.android.com/apk/res/android" <br> android:minWidth ="72dip" <br> android:minHeight ="72dip" <br> android:focusable ="true" <br> android:updatePeriodMillis ="0" <br> android:initialLayout ="@layout/widget" /> <br><br> * This source code was highlighted with Source Code Highlighter .

рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ android: minWidth рдФрд░ android: minHeight рд╡рд┐рдЬреЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, android: updatePeriodMillis рдХрд┐рддрдиреА рдмрд╛рд░ рд╡рд┐рдЬреЗрдЯ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдЕрдкрдбреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, android - initialLayout - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рднреА рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ: рдлрд╝реЛрдХрд╕ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд╡рд┐рдЬреЗрдЯ рддрддреНрд╡реЛрдВ рдкрд░ рдХрд░реНрд╕рд░ рдХреЛ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдпрд╛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╡рд┐рдЬреЗрдЯ рд▓реЗрдЖрдЙрдЯ


рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдПрдХ рдЖрдЗрдХрди рдФрд░ рдПрдХ рдХреИрдкреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛, рджреЛрдиреЛрдВ рддрддреНрд╡ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рд░реЗрд╕ / рд▓реЗрдЖрдЙрдЯ / widget.xml
<? xml version ="1.0" encoding ="utf-8" ? > <br> < LinearLayout <br> xmlns:android ="http://schemas.android.com/apk/res/android" <br> android:layout_width ="72dip" <br> android:layout_height ="72dip" <br> android:orientation ="vertical" > <br> < ImageView <br> android:id ="@+id/icon" <br> android:layout_width ="48dip" <br> android:layout_height ="48dip" <br> android:clickable ="true" <br> android:focusable ="true" <br> android:src ="@drawable/icon" <br> android:background ="@drawable/icon_background" <br> android:layout_gravity ="center" /> <br> < LinearLayout <br> android:id ="@+id/label" <br> xmlns:android ="http://schemas.android.com/apk/res/android" <br> android:layout_width ="wrap_content" <br> android:layout_height ="22dip" <br> android:orientation ="vertical" <br> android:clickable ="true" <br> android:focusable ="true" <br> android:background ="@drawable/label_background" <br> android:gravity ="center" > <br> < TextView <br> android:layout_width ="wrap_content" <br> android:layout_height ="wrap_content" <br> android:text ="@string/label" <br> android:textSize ="13sp" <br> android:textColor ="#ffffff" /> <br> </ LinearLayout > <br> </ LinearLayout > <br><br> * This source code was highlighted with Source Code Highlighter .

рдпрд╣рд╛рдВ рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ: рдЖрдЗрдХрди рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ред рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдЫрд╡рд┐ рдпрд╛ рд░рдВрдЧ рдбрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЙрди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рддрддреНрд╡реЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред

рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдирд┐рдпрдо


рдореИрдВрдиреЗ "рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рд░реВрд▓реНрд╕" StateListDrawable рдХрд╣рд╛ рд╣реИ , рдЬреЛ рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЙрд╕рдХреЗ рд░рд╛рдЬреНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдпрдо рдЖрдЗрдЯрдо рдЯреИрдЧ рдореЗрдВ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ Android: state_focused (рдлрд╝реЛрдХрд╕ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ) рдФрд░ android: state_pressed (рдСрдмреНрдЬреЗрдХреНрдЯ рджрдмрд╛рдпрд╛ рдЧрдпрд╛) рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдЕрдВрддрд░реНрдЧрдд рдкреГрд╖реНрдарднреВрдорд┐ рдЫрд╡рд┐ рд╕реЗрдЯ рдХреА рдЬрд╛рдПрдЧреА, android: drawable рдЙрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

Res / drawable / icon_background.xml
<? xml version ="1.0" encoding ="utf-8" ? > <br> < selector xmlns:android ="http://schemas.android.com/apk/res/android" > <br> < item <br> android:state_focused ="true" <br> android:state_pressed ="false" <br> android:drawable ="@drawable/icon_shadow" /> <br> < item <br> android:state_focused ="true" <br> android:state_pressed ="true" <br> android:drawable ="@drawable/icon_shadow" /> <br> < item <br> android:state_focused ="false" <br> android:state_pressed ="true" <br> android:drawable ="@drawable/icon_shadow" /> <br> </ selector > <br><br> * This source code was highlighted with Source Code Highlighter .

рдЖрдЗрдХрди рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдореЛрдВ рдореЗрдВ, рд╣рдо рддреАрди рдирд┐рдпрдо рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрддрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


Res / drawable / label_background.xml
<? xml version ="1.0" encoding ="utf-8" ? > <br> < selector xmlns:android ="http://schemas.android.com/apk/res/android" > <br> < item <br> android:state_focused ="true" <br> android:state_pressed ="false" <br> android:drawable ="@drawable/label_shadow" /> <br> < item <br> android:state_focused ="true" <br> android:state_pressed ="true" <br> android:drawable ="@drawable/label_shadow" /> <br> < item <br> android:state_focused ="false" <br> android:state_pressed ="true" <br> android:drawable ="@drawable/label_shadow" /> <br> < item android:drawable ="@drawable/label" /> <br> </ selector > <br><br> * This source code was highlighted with Source Code Highlighter .

рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдирд┐рдпрдо рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИрдВ, рдмрд┐рдирд╛ рд╢рд░реНрддреЛрдВ рдХреЗ рдЪреМрдереЗ рдирд┐рдпрдо рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреГрд╖реНрдарднреВрдорд┐ рдЫрд╡рд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЕрдм рд╣рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд░рд┐рд╕ / рдбреНрд░реЙрдмрд▓ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛:
<? xml version ="1.0" encoding ="utf-8" ? > <br> < manifest <br> xmlns:android ="http://schemas.android.com/apk/res/android" <br> package ="org.selectdroid" <br> android:versionCode ="1" <br> android:versionName ="1.0" > <br> < application <br> android:icon ="@drawable/icon" <br> android:label ="@string/app_name" > <br> < receiver <br> android:name =".Widget" <br> android:label ="@string/app_name" > <br> < intent-filter > <br> < action android:name ="android.appwidget.action.APPWIDGET_UPDATE" /> <br> </ intent-filter > <br> < meta-data <br> android:name ="android.appwidget.provider" <br> android:resource ="@xml/widget" /> <br> </ receiver > <br> </ application > <br> </ manifest > <br><br> * This source code was highlighted with Source Code Highlighter .

рд╕рдВрдХрд▓рди рдФрд░ рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдпрд╣ рд╡рд┐рдЬреЗрдЯ рдорд┐рд▓рд╛:


рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп, рд╣рдордиреЗ developer.android.com рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ ред
рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рд┐рдЬреЗрдЯ рдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
рд╕рдВрдХрд▓рд┐рдд APK рдпрд╣рд╛рдБ ред

Source: https://habr.com/ru/post/In114089/


All Articles