рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдХреНрд╖реИрддрд┐рдЬ рдмреНрд▓реЙрдХ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдЬреЛ рдмрд╛рдПрдВ / рджрд╛рдПрдВ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИред рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рдХреМрди рд╕реЗ рддреАрд░ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ (рдЬрдм рд╣рдо рдЕрдВрдд рддрдХ рдкрд╣реБрдВрдЪ рдЧрдП)ред рдФрд░ рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдлрд┐рд▓ рд╣реИред

рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдп
рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдореБрдЭреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП PHP рдХреЗ рддрд╣рдд рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреА рдереА (рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд▓рдЧрднрдЧ 5 рд╕рд╛рд▓ рдкреБрд░рд╛рдиреА, тАЛтАЛрдЬрд╛рд╡рд╛ рдиреЗ рд▓рдЧрднрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдРрд╕рд╛ рд╣реБрдЖ)ред рдХрд╛рдо рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ
http://stackoverflow.com/ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╕рд╛рдЗрдЯреЛрдВ (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕рд╣рд┐рдд) рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рдЖрд╡рд╢реНрдпрдХ рддрддреНрд╡реЛрдВ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ (рдпрд╛ рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛рдУрдВ рд╕реЗ рднрд╛рдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред
рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓, рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдХрд╛ рдПрдХ рддрддреНрд╡ рдерд╛:

рдЦреЛрдЬ рдХреА рд╢реБрд░реБрдЖрдд
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рддрддреНрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред
1. рдврд╛рд▓
2. #rrggbb рд╕реЗ рд░рдВрдЧ рдмрджрд▓реЗрдВ
3. рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдПрдХ рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛
4. рдмрдЯрди рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ
5. рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреНрд░реЙрд▓ рдореЗрдВ рдкрд╛рда рдлрд╝реАрд▓реНрдб рдмрдирд╛рдирд╛
рдЪрд▓реЛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдврд╛рд▓ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
рдореБрдЭреЗ рдПрдХреНрд╕рдПрдордПрд▓ рдореЗрдВ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рднрд╛рд░реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдХрд╛рдо рдЗрддрдирд╛ рдерд╛ рдХрд┐ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдПрдХ рд╕реЗ рджреВрд╕рд░реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рдерд╛ред рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛
рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
int colors[] = { 0xff255779 , 0xff3e7492, 0xffa6c0cd }; GradientDrawable g = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, colors); setBackgroundDrawable(g);
рдпрд╣ рдХреЛрдб рдПрдХ рдврд╛рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рддрд░рд╣ рднрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореБрдЭреЗ рдЗрд╕ рддрдереНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рдХрднреА-рдХрднреА рдореБрдЭреЗ рди рдХреЗрд╡рд▓ рдПрдХ рдврд╛рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдмрд▓реНрдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдХ рддрд╕реНрд╡реАрд░ рдХрд╛ рдПрдХ рд╕рдореНрдорд┐рд▓рди рднреА рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЪрд┐рддреНрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдиреАрдЪреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрд▓рд░ рдХреЛ #rrggbb рд╕реЗ 0xffa6c0cd рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВред
#Rrggbb рд╕реЗ рд░рдВрдЧ рдмрджрд▓реЗрдВ
рдЗрд╕рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛:
public int getBackgoundColorAsInt(String bgcolor){ try{ int result = new BigInteger(bgcolor.replace("#", "FF"),16).intValue(); return result; }catch(Exception e){ Log.e("Error in switch color from String to int","Can't switch bg color : " + bgcolor); return new BigInteger("FFCCCCCC",16).intValue(); } }
рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЗрдВрдЯ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИред
рд╣рдордиреЗ рд░рдВрдЧ рдирд┐рдХрд╛рд▓рд╛ред рдЕрдм рдЗрд╕реЗ рд╕рдордЭ рд▓реЗрддреЗ рд╣реИрдВред
рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛
рдПрдХ рд▓рдВрдмреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдПрдХ рд╕рдорд╛рд░реЛрд╣
рдпрд╣рд╛рдБ рдкрд╛рдпрд╛
рдЧрдпрд╛ рдЬреЛ рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓ рдерд╛:
public Drawable LoadImageFromWebOperations(String url) { try { InputStream is = (InputStream) new URL(url).getContent(); Drawable d = Drawable.createFromStream(is, "src name"); return d; } catch (Exception e) { Log.e("Error in load image", "Can't load image from url " + url); return null; } }
рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рди рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рд▓реЗрдлреНрдЯ рдФрд░ рд░рд╛рдЗрдЯ рдмрдЯрди
рд╕рд╛рдЗрдб рдкрд╛рд░реНрдЯреНрд╕ (рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рджрд╛рдПрдВ рдФрд░ рдмрд╛рдПрдВ) рдХреЗ рд▓рд┐рдП XML рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ
рдпрд╣рд╛рдВ рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдХреЛрдб рджреВрдВрдЧрд╛, рдЬреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ рдорд┐рд▓рд╛ред рдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХреЗ рдмрд╛рджред
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:background="#0000ff" android:id="@+id/top_menu_categories_layout" android:layout_weight="1" android:visibility="gone" > <ImageView android:id="@+id/subcategory_left_scroll_img" android:background="@drawable/top_menu_prev_category" android:layout_height="wrap_content" android:layout_width="25dp" android:visibility="invisible" android:layout_weight=".15" /> <com.lid.app.custom_views.SubcategoryScrollView android:id="@+id/HorizontalScrollView01" android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight=".70" > <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="fill_parent" android:gravity="center_vertical" android:background="#0000ff" > </RelativeLayout> </com.lid.app.custom_views.SubcategoryScrollView> <ImageView android:id="@+id/subcategory_right_scroll_img" android:background="@drawable/top_menu_next_category" android:layout_height="wrap_content" android:layout_width="25dp" android:layout_weight=".15" /> </LinearLayout>
рдФрд░ рдЕрдм рдореИрдВ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреВрдВрдЧрд╛ рдХрд┐ рддреБрд░рдВрдд рдЙрддреНрдкрдиреНрди рд╣реБрдЖ - рдореЗрд░реЗ рдЕрдкрдиреЗ рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
public class SubcategoryScrollView extends HorizontalScrollView {
рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕ рддрддреНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдбреНрд░рд╛рдЗрдВрдЧ рдФрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдмрдЯрди рдЫрд╡рд┐рдпрд╛рдВ рдЫрд┐рдкрд╛рдИ рдЬрд╛рдПрдВред
рдбреНрд░рд╛рдЗрдВрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕реНрдХреНрд░реАрди рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИ (рд╣рдо рдиреАрдЪреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ) рдФрд░ рдпрджрд┐ рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реНрдХреНрд░реАрди рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рдХрдо рд╣реИ, рддреЛ рд╕рд╣реА рдмрдЯрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдмрдЯрди рднреА рдЫрд┐рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ OnDraw () onScrollChanged () рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИрд╢рд╛рдпрдж рдореИрдВ рдЗрд╕реЗ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдФрд░ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореБрдЭреЗ рд╕рддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕реНрдХреНрд░реЙрд▓ рдореЗрд░реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдврд╛рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд░рдВрдЧ рдмрджрд▓рдиреЗ, рдПрдХ рдЗрдВрдЯрд░рдиреЗрдЯ рдбреНрд░рд╛рдЗрдВрдЧ рд╕реЗ рдПрдХ рдбреНрд░реЙрдмрд▓ рдмрдирд╛рдиреЗ, рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдФрд░ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдкрд░ рдмрдЯрди рдЫрд┐рдкрд╛рдПрдВред рдпрд╣ рдХреЗрд╡рд▓ рд╕рднреА рдЬреНрдЮрд╛рдиреЛрдВ рдХреЛ рдПрдХ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрдЯрди рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИрдФрд░ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд, рдмрд╣реБрдд рд╕рд░рд▓ рдерд╛, рдЕрдЧрд░, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдХреЛрдИ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реБрдЖред
рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреНрд░реЙрд▓ рдореЗрдВ рдкрд╛рда рдлрд╝реАрд▓реНрдб рдмрдирд╛рдирд╛
рдореИрдВ рдХреЛрдб рдХреЛ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рджреВрдВрдЧрд╛, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╕рдорд╛рдкреНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдирдХрд▓ред
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдврд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ, рд╣рдо рдереЛрдбрд╝рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВрдЧреЗред
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/main_layout" > <ImageView android:id="@+id/subcategory_background_img" android:layout_width="fill_parent" android:layout_height="41dp" android:scaleType="fitXY" android:visibility="invisible" android:layout_below="@id/top_menu_layout" /> <include layout="@layout/top_menu_subcategories_layout" <---------- 2- android:id="@+id/top_menu_categories_layout" android:layout_width="fill_parent" android:layout_height="41dp" android:layout_below="@id/top_menu_layout" /> </RelativeLayout>
рдЕрдм рд╣рдорд╛рд░рд╛ рдХреЛрдб рд▓рд┐рдЦреЗрдВ:
final LinearLayout ll = (LinearLayout) this.findViewById(R.id.top_menu_categories_layout); final ImageView background_iv = (ImageView) this.findViewById(R.id.subcategory_background_img);
рд╡рд╣ рд╕рдм рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХреНрд╖реИрддрд┐рдЬ рд╕реНрдХреНрд░реЙрд▓ рддреИрдпрд╛рд░ рд╣реИред
рдХрд┐рд╕реА рднреА рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрднреА рднреА рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд рд╣реИред
рдЕрджреНрдпрддрди 1. рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдЗрдореЗрдЬ
рдЕрджреНрдпрддрди 2. рдХреЛрдб рдХреЛ рдареАрдХ рдХрд┐рдпрд╛, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдкрдЬрд╛рдореЗ ред