рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕рдордп-рд╕рдордп рдкрд░, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рджреБрдХрд╛рдиреЛрдВ рдФрд░ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рдлрд░реНрд╢ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдкрд░, рд╣рдо рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЖрд╡рд░реНрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдорд╛рдиреЛрдВ рдХреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рддрд╕реНрд╡реАрд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рд╡реЗрдмрд╕рд╛рдЗрдЯ
www.ebay.com рдкрд░ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (рд╡рд┐рд╢реЗрд╖рдХрд░ рд╢реБрд░реБрдЖрддреА) рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЖрд╡рд░реНрдзрдХ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд▓рдЧреЗ рд░рд╣реЗрдВрдЧреЗред
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ: рддрд╕реНрд╡реАрд░реЛрдВ рдХреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рдЖрд╡рд░реНрдзрдХ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░рдирд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдПрдХ рдЪрд┐рддреНрд░ рджрд┐рдЦрд╛рддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдЖрдпрд╛рдо рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдХреНрд░реАрди рдХреЗ рдЖрдиреБрдкрд╛рддрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВ (рдЪрд┐рддреНрд░ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЬрдм рдЖрдк рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рдХреЛ рдЫреВрддреЗ рд╣реИрдВ, рддреЛ рдЫрд╡рд┐ рдХреЛ рдмрдврд╝рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕реНрдкрд░реНрд╢ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рдд, рдЬрдм рдЖрдк рдкреНрд░рддрд┐рд╢рдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЫрд╡рд┐ рдХрд╛ рдмрдврд╝реЗ рд╣реБрдП рдордзреНрдп рднрд╛рдЧ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЬрдм рдЖрдк рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рджрд╛рд╣рд┐рдиреЗ рдКрдкрд░реА рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдмрдврд╝рд╛ рд╣реБрдЖ рднрд╛рдЧ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрджрд┐ред рдПрдиред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ PZoom рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ, рдкреВрд░реНрд╡рдЬреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреГрд╢реНрдп рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
PZoom - рд╡рд░реНрдЧ рдирд┐рд░реНрдорд╛рддрд╛;
onDraw - рдбреНрд░рд╛рдЗрдВрдЧ рдлрд╝рдВрдХреНрд╢рди, рд╣рд░ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдШрдЯрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ;
onTouchEvent - рдмрд╛рд╣рд░реА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп, рдЬрд┐рд╕реЗ рд╣рд░ рдмрд╛рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдВрдЧрд▓реА рд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдШрдЯрдХ рдХреЛ рдЫреВрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЬрдм рд╡рд╣ рдШрдЯрдХ рдкрд░ рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рдШреБрдорд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рднреА рджрдмрд╛рддрд╛ рд╣реИред
рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдбреНрд░рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд░рдЦреА рдЧрдИ рдХреЗрд╡рд▓ рдПрдХ рддрд╕реНрд╡реАрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ "img" рдирд╛рдо рд╕реЗ рдХрд░реЗрдВрдЧреЗ (рдЪрд┐рддреНрд░ рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡ рдЖрдкрдХреЛ рдорд┐рд▓реЗрдЧрд╛)ред рдХрдХреНрд╖рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдбреНрд░рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВред
private Drawable image;
рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ рдЖрдЧреЗ, рд╡рд╛рдВрдЫрд┐рдд рдЪрд┐рддреНрд░ рдХреЛ рдЪрд┐рддреНрд░ рдореЗрдВ рд░рдЦреЗрдВ рдФрд░ рдлрд╝реНрд░реЗрдо рд╕реЗрдЯ рдХрд░реЗрдВ:
image = context.getResources().getDrawable(R.drawable.img); image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight());
рдЕрдм рдбреНрд░рд╛рдЗрдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдБ:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.save();
рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new PZoom(this)); }
рдпреЗ рдХреНрд░рд┐рдпрд╛рдПрдВ Pzoom рдХреНрд▓рд╛рд╕ рдмрдирд╛рддреА рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдореБрдЦреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИрдВ, рдпрд╛рдиреА рдЕрдм рдХреЗрд╡рд▓ рдЗрд╕ рдШрдЯрдХ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдм, рдпрджрд┐ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрдХреНрд░реАрди рдкрд░ рдХреЗрд╡рд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рджреЗрдЦреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИ (рдЪрд┐рддреНрд░ рд╕реНрдХреНрд░реАрди рд╕реЗ рдмрдбрд╝рд╛ рд╣реИ)ред
рдХрд╛рд░реНрдпрд╛рддреНрдордХ
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░ рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдореЗрдВ рдлрд┐рдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдЖрдпрд╛рдо рд╕реНрдХреНрд░реАрди рдХреЗ рдЖрдиреБрдкрд╛рддрд┐рдХ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯрдХреЗрдВрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рд╕рддрд╣ рдкрд░ рдЫрд╡рд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдиреБрдкрд╛рдд рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЧреБрдгрдХ рднреА рд╣реЛрддрд╛ рд╣реИред
рдХрдХреНрд╖рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:
int X = 0,Y = 0;
рдЕрдм рдлрдВрдХреНрд╢рди рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ (рдЗрд╕реЗ рдЪрдмрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХ рдЧрдгрд┐рдд рд╣реИ):
void SetCenter(){
рдЕрдм рд╣рдо рд╡рд┐рдЬреЗрдЯ рдХреЗ рдбреНрд░рд╛рдЗрдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.save();
рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╡рд┐рдЬреЗрдЯ рдЖрдХрд╛рд░ рдЪрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рд╣реЛрддреА рд╣реИ, рдпрджрд┐ рд╡реЗ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИрдВ, рддреЛ рд╣рдо рд╡рд┐рдЬреЗрдЯ рдЖрдХрд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рдХрд░реНрд╕рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрджрд┐ рдпрд╣ рд╢реВрдиреНрдп рд╣реИ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЙрдВрдЧрд▓реА рд╡рд┐рдЬреЗрдЯ рдкрд░ рдирд╣реАрдВ рд╣реИ), рддреЛ рд╣рдо рдЫрд╡рд┐ рдХреЗрдВрджреНрд░рд┐рдд рдлрд╝рдВрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЫрд╡рд┐ рдХреЛ рдЦрд┐рдВрдЪрд╛рд╡ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдХрд╛рд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рддрд╕реНрд╡реАрд░ рдХреА рдПрдХ рдкрд╛рд░реА рд╣реИред рдЕрдВрдд рдореЗрдВ, рдЪрд┐рддреНрд░ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ - рджрдмрд╛рдП рдЧрдП рдЙрдВрдЧрд▓реА рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЪрд┐рддреНрд░ рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдСрди-рд╕реНрдХреНрд░реАрди рд╕реНрдХреНрд░реАрди рдкрд░ рдЙрдВрдЧрд▓реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
@Override public boolean onTouchEvent(MotionEvent event) {
рдореИрдВ рдпрд╣ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреМрди рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ рддреЛ
рдкрд╣рд▓реЗ рд▓реЗрдЦ рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВред рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рдЫрд╡рд┐ рдХреА рдирдИ рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ, рдЗрд╕рдХреЗ рдирд┐рдореНрди рд░реВрдк рд╣реЛрдВрдЧреЗ:
void NewPosition(){ scale = 1;
рд╡рд┐рдЬреЗрдЯ рдХреЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджреЗрдВ, рдЕрд░реНрдерд╛рддреН, рдпрджрд┐ рдХрд░реНрд╕рд░ рдкреЛрдЬрд┐рд╢рди рд╡реЗрд░рд┐рдПрдмрд▓ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдирдП рдкреЛрдЬрд┐рд╢рди рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ:
if (pX==0) {
рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЬрдм рдЖрдк рдЪрд┐рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрдврд╝реЗрдЧрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЙрдВрдЧрд▓реА рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реНрдХреНрд░реАрди рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдореЗрдЧрд╛ред рдПрдХ рдЕрдЪреНрдЫреА рдкрд░реАрдХреНрд╖рд╛ рд╣реИ!
рдЖрд╡рд░реНрдзрдХ рдХрд╛рдВрдЪ рд╡рд░реНрдЧ рдХрд╛ рдЕрдВрддрд┐рдо рджреГрд╢реНрдп:
package com.gc986.photozoom; import android.content.Context; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.view.MotionEvent; import android.view.View; public class PZoom extends View { private Drawable image;
рдЗрд╕реЗ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП -
http://youtu.be/GHB91_RzORYрдЖрдк рдирд┐рдореНрди рд▓рд┐рдВрдХ рдкрд░ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдирдореВрдирд╛ рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ -
http://www.anprog.com/documents/Photo_Zoom.zip