Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдХреЛрдИ рдЖрд╕рд╛рди рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ
рд╕рдВрдХрд▓реНрдк рдФрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдШрдирддреНрд╡ (DPI) рдХреА
рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдмрд┐рд▓реНрд▓реА рдХреЗ рддрд╣рдд, рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕реБрдЭрд╛рд╡, рдЬреЛ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд▓реЗрдЖрдЙрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдбрд┐рдЬрд╛рдЗрди рдЕрд╡рд░реЛрдзреЛрдВ рдХреЗ рдмрд┐рдирд╛ рджреВрд╕рд░реЛрдВ рдкрд░ рдЦрд┐рдВрдЪрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ: рдлрд╝реЙрдиреНрдЯ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣; рд╡рд┐рд╢рд╛рд▓ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдФрд░ рдЕрдиреНрдп рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБред
UPD: рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдкреЛрд╕реНрдЯ, рд▓реЗрдХрд┐рди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдореВрд▓реНрдпрд╡рд╛рди рд╕рд▓рд╛рд╣UPD: рдореБрдЭреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЦреЗрдж рд╣реИ, рдореИрдВ, рдПрдХ рдмрд╛рдЬрд╝рд╛рд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рд╡рд┐рд╖рдп рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдпрд╛ рдФрд░ рдкреЛрд╕реНрдЯ рдХреЗ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЕрд╡рдЧрдд рдирд╣реАрдВ рд╣реБрдЖред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд╣рд╛рдВ рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЙрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпрд╣ рдереА рдХрд┐ рд╡рд╣ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╕рдорд╛рди рджрд┐рдЦреЗред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд▓реЗрдЖрдЙрдЯ рд╡рд┐рдзрд┐ рджрд┐рдЦрд╛рдИ рджреА, рдпрд╣ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
рдореБрдЭреЗ рд╕рд╣реА рдХрд░рдиреЗ рдФрд░ рд╕рд╣реА рд▓реЗрдЖрдЙрдЯ рдкрд░ рдЕрдкрдиреА рдмрд╛рдд рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░реЛрдВ рдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрджрд┐ рдЖрдкрдХреЛ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдкреВрд░реНрдг рд╕рдВрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢:
- рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдЗрди рдПрдХреНрд╢рди: рдЙрддреНрддрд░рджрд╛рдпреА рдбрд┐рдЬрд╝рд╛рдЗрди рд╡реАрдбрд┐рдпреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЛ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
- рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдХреНрд░реАрди рд╕рд╛рдЗрдЬ, рдбреАрдкреАрдЖрдИ рдФрд░ рдорд▓реНрдЯреАрдкрд▓ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреИрд╕реЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд▓реНрдЯреАрдкрд▓ рд╕реНрдХреНрд░реАрди рдмреЗрд╕рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ ред
- рд╡рд┐рднрд┐рдиреНрди рд╕реНрдХреНрд░реАрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдФрд░ DPI рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Google рдХреА рдУрд░ рд╕реЗ рдорд▓реНрдЯреАрдкрд▓ рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рддреАрди рдмреЗрд╣рддрд░реАрди рдкрд╛рда рд╣реИрдВ, рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
- рдЦрд╛рдореЛрд╢реА рдлрд╝реЙрдиреНрдЯ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЯрд┐рдк
рд╡рд┐рднрд┐рдиреНрди рд╕реНрдХреНрд░реАрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдореВрд▓реНрдпреЛрдВ рдореЗрдВ dens.xml text_size = 16sp
рдореВрд▓реНрдпреЛрдВ рдореЗрдВ-sw600dp \ dens.xml text_size = 20sp
in-sw720dp \ dens.xml text_size = 24sp
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╣рдорд╛рд░реЗ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
IPhone рд▓реЗрдЖрдЙрдЯ рдкрд░, iPhone 4 рдФрд░ iPhone 5 рдХреА рдмрд┐рд▓реНрдХреБрд▓ рдФрд░ рдХреЗрд╡рд▓ рджреЛ рд╕реНрдХреНрд░реАрди рд╕реЗрдЯ рдХреА рдЧрдИ рд╣реИрдВред рд╣рдо рджреЛ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдПрдХ рдПрдкреНрд▓реАрдХреЗрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рд▓реВрд╕реЗрдВрдЯ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯреНрд╕ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдбрд┐рдЬрд╛рдЗрдирд░ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЗрд╕реЗ рдбреЗрд╡рд▓рдкрд░, рдкрд░реАрдХреНрд╖рдХ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рддрд╣рдд, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ: рдЖрдк рдЕрдирдВрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЕрдирдВрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбрд┐рдЬрд╛рдЗрдирд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдХреНрд╕рд░ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рддрддреНрд╡реЛрдВ рдФрд░ рд╕реНрдХреЗрд▓ рдлреЛрдВрдЯ рдХреЛ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдПред рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдирдВрдд рддрдХ рдЬрд╛рддреА рд╣реИред
рдЕрд░рд╛рдЬрдХрддрд╛ рдХреЛ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЖрдЙрдЯ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЖрдПред рдХрд┐рд╕реА рднреА рдлреНрд▓реИрдЧрд╢рд┐рдк рдлреБрд▓-рдПрдЪрдбреА рдлреЛрди рдХреЗ рд▓рд┐рдП рд▓реЗрдЖрдЙрдЯ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд▓реЗрдЖрдЙрдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╛рдХреА рд╡реЗ рд╕реБрдВрджрд░ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рддреИрдпрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдореЙрдбрд▓ рдкрд░ рдбрд┐рдЬрд╛рдЗрдирд░ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рд╕рднреА рдлреЛрди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рд╣реИ; рдЧреЛрд▓рд┐рдпрд╛рдБ (> 6.5 рдЗрдВрдЪ) рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд▓реЗрдЖрдЙрдЯ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╣рд╛рде рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдиреЗрдХреНрд╕рд╕ 4 рд╣реИ рдЗрд╕рдХреА рд╕реНрдХреНрд░реАрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдВред
рдПрдХ рдирдХрд▓реА рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓реЗрдЖрдЙрдЯ рдЬреЛ рд╣рдо рдЯрд╛рдЗрдк рдХрд░реЗрдВрдЧреЗ (рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ)ред
рдЦрд╝рд╛рдХрд╛
рд╣рдо рдиреЗрд╕реНрдЯрд░реНрдб рд░реИрдЦрд┐рдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореБрдЦреНрдп рд▓реЗрдЖрдЙрдЯ рдХрд░рддреЗ рд╣реИрдВред рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рддрддреНрд╡реЛрдВ рдФрд░ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреНрд░рдорд╢рдГ рд▓реЗрдЖрдЙрдЯ рд╕реЗ рд╡рдЬрди рдФрд░
рд╡реЗрдЯрд╕рдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╣рдо рдлреНрд░реЗрдорд▓реЗрдЖрдЙрдЯ рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╣рдо
рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рд╕реЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/appLstItemLayout" android:orientation="horizontal" android:layout_width="0dp" android:layout_height="0dp" android:gravity="center" android:weightSum="488" android:background="@drawable/bg_item"> <ImageView android:id="@+id/appImg" android:layout_width="wrap_content" android:layout_height="match_parent" android:adjustViewBounds="true" android:src="@drawable/square"/> <FrameLayout android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="20"/> <LinearLayout android:orientation="vertical" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="428" android:gravity="center" android:weightSum="130"> <FrameLayout android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="55"/> <TextView android:id="@+id/titleTxt" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="bottom"/> <FrameLayout android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="10"/> <ru.touchin.MySimpleAndAwesomeRatingBar android:id="@+id/appRatingBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical"/> <FrameLayout android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="25"/> </LinearLayout> </LinearLayout> </FrameLayout>
рдЖрдЧреЗ рд╣рдореЗрдВ рдбрд┐рд╕реНрдкреНрд▓реЗрдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЬрд╛рджреВ рдХреА рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рд╕рд╣рд╛рдпрдХ рд▓рд┐рдЦреЗрдВрдЧреЗред
public class S { private static final int ORIGINAL_VIEW_WIDTH = 768; private static final int ORIGINAL_VIEW_HEIGHT = 1184; private static final int ORIGINAL_VIEW_DIAGONAL = calcDiagonal(ORIGINAL_VIEW_WIDTH, ORIGINAL_VIEW_HEIGHT); private static int mWidth; private static int mHeight; private static int mDiagonal; private static float mDensity; static { DisplayMetrics metrics = TouchinApp.getContext().getResources().getDisplayMetrics(); mWidth = metrics.widthPixels; mHeight = metrics.heightPixels; mDiagonal = calcDiagonal(mWidth, mHeight); mDensity = metrics.density; } public static int hScale(int value){ return (int)Math.round(value * mWidth / (float) ORIGINAL_VIEW_WIDTH); } public static int vScale(int value){ return (int)Math.round(value * mHeight / (float) ORIGINAL_VIEW_HEIGHT); } public static int dScale(int value){ return (int)Math.round(value * mDiagonal / (float) ORIGINAL_VIEW_DIAGONAL); } public static int pxFromDp(int dp){ return (int)Math.round(dp * mDensity); } private static int calcDiagonal(int width, int height){ return (int)Math.round(Math.sqrt(width * width + height * height)); } }
1184 рдмрд┐рдирд╛ рдмрдЯрди рдХреЗ рдиреЗрдХреНрд╕рд╕ 4 рдХреА рдКрдВрдЪрд╛рдИ рд╣реИ,
768 рдЪреМрдбрд╝рд╛рдИ рд╣реИред рдЗрди рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдХреА рдКрдВрдЪрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рд╕рдВрджрд░реНрдн рд╕реЗ рдХрд┐рддрдиреА рдмрд╛рд░ рдЕрд▓рдЧ рд╣реИред
рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп рдФрд░ рд╕реВрдЪреА
рд╡реЗрдЯрд╕реБрдо рдХреЗ рд╕рд╛рде рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ; рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рд╕рд╛рде рдЙрдирдХрд╛ рдЖрдВрддрд░рд┐рдХ рдЖрдХрд╛рд░ рдЕрд╕реАрдорд┐рдд рд╣реИред рд╕реНрдХреНрд░реЙрд▓рд╡реНрдпреВ рдФрд░ рд╕реВрдЪреА рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЛрдб (130 - рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреА рдКрдВрдЪрд╛рдИ) рдореЗрдВ рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
if (view == null) { view = mInflater.inflate(R.layout.item_app_list, viewGroup, false); view.setLayoutParams(new AbsListView.LayoutParams (ViewGroup.LayoutParams.MATCH_PARENT, S.dScale(130))); }
рдФрд░ рдлрд┐рд░ рдЖрдк рд╡реЗрдЯрд╕реБрдо рдХреЗ рд╕рд╛рде рдЯреНрд░рд┐рдХ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рддрд╕реНрд╡реАрд░реЗрдВ
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди рдХрд╛ рдЖрдХрд╛рд░ рдХреЛрдб рдореЗрдВ рд╕реЗрдЯ рд╣реИ:
view.findViewById(R.id.appImg).setLayoutParams(new LinearLayout.LayoutParams(S.dScale(240) - S.pxFromDp(20), S.dScale(240) - S.pxFromDp(20)));
рдЬрд╣рд╛рдВ реирекреж рд╕реВрдЪреА рдордж рдХреА рдКрдВрдЪрд╛рдИ рд╣реИ, реиреж рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдКрдВрдЪрд╛рдИ рд╣реИред
рдлреЛрдВрдЯ
рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдХреНрд░реАрди рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдиреБрдкрд╛рддрд┐рдХ рдПрдХ рдЗрдХрд╛рдИ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╡рд┐рдХрд░реНрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреА рдЬрд╛рддреА рд╣реИ:
textSizePx = originalTextSizePx * (deviceDiagonalPx / originalDeviceDiagonalPx )
рд╣рд╛рдВ, рдХреЛрдб рдореЗрдВ рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ (рдореВрд▓ рд▓реЗрдЖрдЙрдЯ рдкрд░ рдкрд┐рдХреНрд╕рд▓ рдореЗрдВ 36 рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░) рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
titleTxt.setTextSize(TypedValue.COMPLEX_UNIT_PX, S.dScale(36));
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЯрд┐рдкреНрд╕
1. рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ,
рдиреМ-рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдЕрд╕рдВрднрд╡ рд╣реИ - рдбрд┐рдЬрд╛рдЗрди рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░реЗрдВред
2.
рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рд░рд▓ рддрддреНрд╡реЛрдВ рдХреЛ рдбреНрд░рд╛ рдХрд░реЗрдВ
3. рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ
рдиреМ-рдкреИрдЪ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХ рд╕рдВрд╕рд╛рдзрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
Android рдХреЗ
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдпрд╛
Habr рдкрд░ рдФрд░ рдкрдврд╝реЗрдВ ред
рд╕рднреА рдкреИрдЪ рдХреЗ рд▓рд┐рдП рдиреМ-рдкреИрдЪ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: ldpi mdpi tvdpi hdpi, xhdpi, xdhdpiред рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрди рдЬрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЦрд░рд╛рдм рд╣реИ, рдФрд░ рдиреМ-рдкреИрдЪ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╛рдЗрди-рдкреИрдЪ рдореЗрдВ рдЗрдВрдбреЗрдВрдЯ рди рдХрд░реЗрдВ, рд╡реЗ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЗрдЖрдЙрдЯ рддрддреНрд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирддреЗ рд╣реИрдВред
рдЖрдХрд╛рд░
рдпрджрд┐ рд╕рдВрд╕рд╛рдзрди рдХреЛ рд╕рд░рд▓ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЖрдХрд╛рд░ рдФрд░ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рдШрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп
xml- рдЖрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдлреНрд░реЗрдо рдмрдирд╛рдПрдВ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдиреМ-рдкреИрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдКрдкрд░ рдХрд╛рдЯрд╛ред
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle" > <corners android:radius="5px" /> <solid android:color="#08000000"/> </shape> </item> <item android:bottom="1px" android:right="1px" android:left="1px" android:top="1px"> <shape android:shape="rectangle" > <corners android:radius="4px" /> <solid android:color="#10000000"/> </shape> </item> <item android:bottom="2px" android:right="2px" android:left="2px" android:top="2px"> <shape android:shape="rectangle" > <corners android:radius="3px" /> <solid android:color="#10000000"/> </shape> </item> <item android:bottom="3px" android:right="3px" android:left="3px" android:top="3px"> <shape android:shape="rectangle"> <corners android:radius="2px" /> <solid android:color="#ffffff"/> </shape> </item> </layer-list>
рддрд╕реНрд╡реАрд░реЗрдВ
рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдПрдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рдФрд░ рд╕реНрдореГрддрд┐-рдЧрд╣рди рд╕рдВрдЪрд╛рд▓рди рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдЕрдВрджрд░ рдХреА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рдПрдХ рдмрд┐рдЯрдореИрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдкрд▓реИрд╢ рд╕реНрдХреНрд░реАрди рд╕реЗ 500x500 рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рд╣рдорд╛рд░рд╛ рд▓реЛрдЧреЛ 1mb рдмрд┐рдЯрдореИрдк (
4 рдкрд┐рдХреНрд╕реЗрд▓ рдкреНрд░рддрд┐ рдкрд┐рдХреНрд╕реЗрд▓ ) рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рд╕реНрдХреЗрд▓рд┐рдВрдЧ, рдПрдХ рдФрд░ рдмрд┐рдЯрдореИрдк рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ 500kb рдХрд╣рддреЗ рд╣реИрдВред рдпрд╛ рдЙрдкрд▓рдмреНрдз
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреНрд░рддрд┐ 24mb рдХрд╛ 1.5mb ред рд╣рдордиреЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕-рд╕рдореГрджреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рдореЗрдореЛрд░реА рдХреА рдХрдореА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЙрди рдЪрд┐рддреНрд░реЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдиреЛрдб-рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдиреМ-рдкреИрдЪ рдпрд╛ рдЖрдХреГрддрд┐ рдХреЗ рд╕рд╛рде рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЫрд╡рд┐ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдЖрдХрд╛рд░ рдореЗрдВ рд╕реНрдХреЗрд▓ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреИрд╢ рдХрд░реЗрдВред рдпрд╣ рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЧрддрд┐ (рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХреЗ рдЕрд▓рд╛рд╡рд╛) рдФрд░ рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рд╕рд░реНрд╡рд░ (рд╣рдорд╛рд░реЗ рд▓реЗрдЖрдЙрдЯ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди) рд╕реЗ рднрд░реЗ рд╣реБрдП рдЬрдЯрд┐рд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрджрд░реНрд╢ рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреА рддрд╕реНрд╡реАрд░реЗрдВ рджреЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рд╕реНрдЯреНрд░реАрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдЫрд╡рд┐ рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред
http://<secret_domain>/media/img/movies/vposter/plain/22741680/< px>_< px>.jpg
рдкреАрдПрд╕ рдпреБрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреЛрд╕реНрдЯ рдХрд╛ рдЖрдзрд╛рд░ рд╣рдорд╛рд░реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдЧреБрд░реБ рд▓реЗрд╕рд╛ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЙрд╕реЗ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рдФрд░ рдЖрдк рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд▓реЗрдЖрдЙрдЯ рд▓реЗрдЖрдЙрдЯ рдХреА рд╕рд▓рд╛рд╣ рдХреИрд╕реЗ рджреЗрддреЗ рд╣реИрдВ? рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдХрд┐рддрдиреЗ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рддрд╛ рд╣реИ? рдЖрдк рдЧреНрд░рд╛рдлрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ?
рд╣рдорд╛рд░реЗ рд╣рдмреНрд░-рдмреНрд▓реЙрдЧ (рдКрдкрд░реА рджрд╛рдПрдВ рдмрдЯрди) рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВред рд╣рд░ рдЧреБрд░реБрд╡рд╛рд░, рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕, рд╡рд┐рдкрдгрди рдФрд░ рдореЛрдмрд╛рдЗрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд▓реЗрдЦред рдЕрдЧрд▓рд╛ рд▓реЗрдЦ (5 рд╕рд┐рддрдВрдмрд░) "рд╕реА # рдЖрдИрдУрдПрд╕ рдФрд░ рдПрдВрдбреНрд░реЙрдпрдб рдкрд░ async"