рд╣рд░ рдХреЛрдИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдирдП рдХреИрдорд░реЗ рд╕реЗ рдореЗрдиреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ


рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕
рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдореЗрдиреВ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИред рдЖрдИрд╕реАрдПрд╕ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдШрдЯрдХ PieMenu рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдПрдХ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдПрдХ рдореЗрдиреВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рди рдХреЗрд╡рд▓ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдордирдорд╛рдиреЗ рд╕реНрдерд╛рди рдкрд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рд░рд╣рд╕реНрдп рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдХрд┐ рдЗрди рдореЗрдиреНрдпреВ рдХреЛ рдПрдкреАрдЖрдИ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛: рдЗрди рдореЗрдиреНрдпреВ рдХреЛ рдХрд╛рдлреА рд▓реЛрдЧ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╡реНрд╣реАрд▓ рдХреЛ рд░реАрдЗрдиреНрд╡реЗрдВрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАред
рд╕реНрд░реЛрдд рдХреЛрдб
рдЗрд╕рд▓рд┐рдП, рдореЗрд░рд╛ рд░рд╛рд╕реНрддрд╛ AOSP (Android Open Source Project) рдкрд░ рд╣реИред рдЗрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреА рдЦреЛрдЬ рд╕рдлрд▓ рд░рд╣реАред рдореЗрдиреВ рдХреЗ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕рд╛рдЗрдбрдмрд╛рд░ рд╕рдВрд╢реЛрдзрди

рддрдм рдЖрд╡реЗрджрди рдХреЗ рд╕рднреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╣рдЯрд╛ рджрд┐рдП рдЧрдП рдереЗ: рдлрд╝реАрд▓реНрдб, рд╡рд┐рдзрд┐рдпрд╛рдБ, рд╢реНрд░реЛрддрд╛, рдЖрджрд┐ред (рдФрд░ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдпрд╛рдиреА рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓реЗрдиреЗ рдФрд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЙрд░реНрдиреА рд╣реИ)ред рд╕рд╛рдЗрдб рдореЗрдиреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЗрдиреВ рдЖрдЗрдЯрдо рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рд┐рд╕реНрдЯреЗрдВрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА,
List
рдП рд╕реЗ
Item
рдХрд╛ рдЬреЛрдбрд╝ред рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╕реНрддрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рд╡рд╣ рдореЗрдиреВ рдореЗрдВ рд░рд┐рдВрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд╣рд▓реА рдЕрдВрдЧреВрдареА рдиреНрдпреВрдирддрдо рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╣реИ, рдФрд░ рд╕реНрддрд░ рдХреА рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рддреНрд░рд┐рдЬреНрдпрд╛ рдмрдврд╝рддрд╛ рд╣реИред рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐
Path
, рдЬреЛ рдЖрдЗрдХрди рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрджреНрдзрддрд┐ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдирдИ рдЕрдВрдЧреВрдареА рдХреЗ рд▓рд┐рдП рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рдмрд╣реБ-рд╕реНрддрд░реАрдп рдореЗрдиреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рджреЛрд╖ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рдореЗрдиреВ рд╕рдмрдореЗрдирд╕ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдХреЛрдб рдХреА рддрд░рдл, рдпрд╣
Item
рдХреЗ рджреВрд╕рд░реЗ
Item
рдЬреЛрдбрд╝рдиреЗ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ : рдПрдХ рд╣реА рд░рд┐рдВрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рдмрдореЗрдирд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд░рд┐рдВрдЧ рдореЗрдВ 3 рдЖрдЗрдЯрдо рд╣реИрдВ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ 2 рд╣реИрдВред рдлрд┐рд░, 1 рд░рд┐рдВрдЧ рдХреЗ рдЖрдЗрдЯрдо рдХреЗ рд╕рдмрдореЗрдиреВ рдкрд░, рдЖрдк рдпрд╛ рддреЛ 2 рддрддреНрд╡ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ (рдЬрдм рддреИрдирд╛рддреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ 2 рд╕реНрдерд┐рддрд┐ рд░рд╣реЗрдЧреА) рдпрд╛ 2 рд░рд┐рдВрдЧ рдХреЗ 2 рддрддреНрд╡ (рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЗрд╕ рд╢рд░реНрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдкреНрд░реЗрд░рд┐рдд рдкрддрд░рд╕ рдХреЗ рдкрд╛рд╕ рдЧрдпрд╛ рдФрд░ рдЙрд╕рдиреЗ рд╢рд┐рдХрд╛рдпрдд рдХреА рдХрд┐ рдЙрд╕реЗ рднрдпрд╛рдирдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдм рдЖрдк рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдкрд╡рд╛рдж рдХреЗ рдбрд░ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдб рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧрд╛ред
PieControl

рдпрд╣ рд╡рд░реНрдЧ рдЖрдкрдХреЛ рдПрдХ рд╕рд╛рдЗрдб рдореЗрдиреВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╣рдо рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░
populateMenu()
рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рд╢реНрд░реЛрддрд╛ рдХреНрд▓рд┐рдХреЛрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП
setListeners()
рдЬреЛрдбрд╝рдиреЗ рдХреА рднреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
PieItem
makeItem()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
makeItem()
рддрддреНрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдо рдЖрдЗрдХрди рдФрд░ рд╕реНрддрд░ (рд░рд┐рдВрдЧ рдирдВрдмрд░) рдХреЗ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдирдП рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рдПрдВ, рдЗрд╕реЗ
attachToContainer()
рдорд╛рдзреНрдпрдо рд╕реЗ рдлреНрд░реЗрдо рдореЗрдВ
attachToContainer()
рдФрд░
setListeners()
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╢реНрд░реЛрддрд╛ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВред
рд╡рд╛рд░рд┐рд╕ рдЙрджрд╛рд╣рд░рдг: private class TestMenu extends PieControl { List<PieItem> plus_sub; List<PieItem> minus_sub; public TestMenu(Activity activity) { super(activity); } protected void populateMenu() { PieItem plus = makeItem(android.R.drawable.ic_input_add,1); { plus_sub = new ArrayList<PieItem>(2); plus_sub.add(makeItem(android.R.drawable.ic_input_add,2)); plus_sub.add(makeItem(android.R.drawable.ic_input_add, 2)); plus.addItems(plus_sub); } PieItem minus = makeItem(android.R.drawable.ic_menu_preferences,1); { minus_sub = new ArrayList<PieItem>(2); minus_sub.add(makeItem(android.R.drawable.ic_menu_preferences,1)); minus_sub.add(makeItem(android.R.drawable.ic_menu_preferences, 1)); minus.addItems(minus_sub); } PieItem close = makeItem(android.R.drawable.ic_menu_close_clear_cancel,1); mPie.addItem(plus); mPie.addItem(minus); mPie.addItem(close); PieItem level2_0 = makeItem(android.R.drawable.ic_menu_report_image, 2); mPie.addItem(level2_0); PieItem level2_1 = makeItem(android.R.drawable.ic_media_next, 2); mPie.addItem(level2_1); } public void setListeners() { this.setClickListener(plus_sub.get(0),new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getApplicationContext(),"Clicked plus 1", Toast.LENGTH_SHORT).show(); } }); this.setClickListener(plus_sub.get(1), new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getApplicationContext(),"Clicked plus 2", Toast.LENGTH_SHORT).show(); } }); this.setClickListener(minus_sub.get(0), new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getApplicationContext(),"Clicked minus 1", Toast.LENGTH_SHORT).show(); } }); this.setClickListener(minus_sub.get(1), new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getApplicationContext(),"Clicked minus 2", Toast.LENGTH_SHORT).show(); } }); this.setClickListener(close, new View.OnClickListener() { @Override public void onClick(View view) { finish(); } }); } }
рдЙрджрд╛рд╣рд░рдг рдореЗрдиреВ рдШреЛрд╖рдгрд╛: TestMenu testMenu = new TestMenu(this); testMenu.attachToContainer(some_container); testMenu.setListeners();
PieRenderer

рдпрд╣ рд╡рд░реНрдЧ рдЖрдкрдХреЛ рдХреИрдорд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдПрдХ рдкрд░рд┐рдкрддреНрд░ рдореЗрдиреВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, PieControl рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдореЗрдиреВ рд╕рд╛рдЗрдб рдореЗрдиреВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ: рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рднреА
ViewGroup
рд╕реЗ рдирд╣реАрдВ рдмрд╛рдВрдз рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢реЗрд╖
RenderOverlay
(рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдорд┐рдд
RenderOverlay
, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдВрддрд░рд┐рдХ рдХрд╛рдордХрд╛рдЬ рд╣реИ)ред
RenderOverlay
рд╡рд╕реНрддреБрдУрдВ рдХреЛ
RenderOverlay
рдмрд╛рдВрдз рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА
PieRenderer
ред рдлрд┐рд░ рд╣рдореЗрдВ рдореЗрдиреВ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореЗрдиреВ рдореЗрдВ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ
PieController
рд╡рд░реНрдЧ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
рдПрдХ
PieRenderer
рдСрдмреНрдЬреЗрдХреНрдЯ, рдПрдХ
PieController
рдСрдмреНрдЬреЗрдХреНрдЯ, рдореЗрдиреВ рдЖрдЗрдЯрдо PieController рдореЗрдВ makeItem рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░
PieController
ред
PieRenderer
рдорд╛рдзреНрдпрдо рд╕реЗ рдореЗрдиреВ рдЖрдЗрдЯрдо
PieRenderer
рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдлрд┐рд░ рдПрдХ
RenderOverlay
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ (рдпрд╛
findViewById
рдорд╛рдзреНрдпрдо рд╕реЗ
findViewById
рдпрджрд┐ рдЖрдк xml рдореЗрдВ рд╕рдм рдХреБрдЫ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред
RenderOverlay
рдорд╛рдзреНрдпрдо рд╕реЗ
addRenderer
RenderOverlay
рдЬреЛрдбрд╝реЗрдВред рдЕрдм рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢:
onTouchEvent
PieRenderer
рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЗрд╡реЗрдВрдЯ рднреЗрдЬреЗрдВ
рдЙрджрд╛рд╣рд░рдг рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛрдб: public class MainActivity extends Activity { private static float FLOAT_PI_DIVIDED_BY_TWO = (float) Math.PI / 2; private final static float sweep = FLOAT_PI_DIVIDED_BY_TWO / 2; private PieRenderer pieRenderer; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); pieRenderer = new PieRenderer(getApplicationContext()); PieController pieController = new PieController(this, pieRenderer); RenderOverlay renderOverlay = (RenderOverlay) findViewById(R.id.render_overlay); PieItem item0 = pieController.makeItem(android.R.drawable.arrow_up_float); item0.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO, sweep); item0.setOnClickListener(new PieItem.OnClickListener() { @Override public void onClick(PieItem item) { Toast.makeText(getApplicationContext(), "some cmd", Toast.LENGTH_SHORT).show(); } }); PieItem item1 = pieController.makeItem(android.R.drawable.arrow_up_float); item1.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO + sweep, sweep); item1.setOnClickListener(new PieItem.OnClickListener() { @Override public void onClick(PieItem item) { Toast.makeText(getApplicationContext(), "some cmd 2", Toast.LENGTH_SHORT).show(); } }); PieItem item7 = pieController.makeItem(android.R.drawable.arrow_up_float); item7.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO - sweep, sweep); item7.setOnClickListener(new PieItem.OnClickListener() { @Override public void onClick(PieItem item) { Toast.makeText(getApplicationContext(), "some cmd 7", Toast.LENGTH_SHORT).show(); } }); pieRenderer.addItem(item0); pieRenderer.addItem(item1); pieRenderer.addItem(item7); PieItem item0_0 = pieController.makeItem(android.R.drawable.ic_menu_add); item0_0.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO, sweep); item0_0.setOnClickListener(new PieItem.OnClickListener() { @Override public void onClick(PieItem item) { Toast.makeText(getApplicationContext(), "some cmd", Toast.LENGTH_SHORT).show(); } }); PieItem item0_6 = pieController.makeItem(android.R.drawable.ic_menu_add); item0_6.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO + sweep, sweep); item0_6.setOnClickListener(new PieItem.OnClickListener() { @Override public void onClick(PieItem item) { Toast.makeText(getApplicationContext(), "some cmd 2", Toast.LENGTH_SHORT).show(); } }); PieItem item0_7 = pieController.makeItem(android.R.drawable.ic_menu_add); item0_7.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO - sweep, sweep); item0_7.setOnClickListener(new PieItem.OnClickListener() { @Override public void onClick(PieItem item) { Toast.makeText(getApplicationContext(), "some cmd 7", Toast.LENGTH_SHORT).show(); } }); item0.addItem(item0_0); item0.addItem(item0_6); item0.addItem(item0_7); renderOverlay.addRenderer(pieRenderer); } @Override public boolean onTouchEvent(MotionEvent event) { pieRenderer.onTouchEvent(event); return super.onTouchEvent(event); } }
рдЕрдВрддрднрд╛рд╖рдг
рдкрд░рд┐рдгрд╛рдореА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ
рдпрд╣рд╛рдВ рд╕реЗ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдПрдВрдбреНрд░реЙрдЗрдб 2.2.1 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ (рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб 1.0 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!
рдЕрдкрдбреЗрдЯ:
рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рдПрдирд┐рдореЗрд╢рди рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдк рдХреЗ рд▓рд┐рдП
рдкреНрд░реЛрдЯреЙрдЯрд┐рдХ рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдЕрдм рдореЗрдиреВ рдкреБрд░рд╛рдиреЗ API рдкрд░ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: JakeWharton 1.0 рдХреА рдиреНрдпреВрдирддрдо API рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ
2.2.1 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред