您的位置:首页 > 移动开发 > Android开发

Android通过手势实现的缩放处理

2012-11-24 19:01 369 查看
02
import
android.content.Context;
03
import
android.graphics.Canvas;
04
import
android.graphics.Color;
05
import
android.graphics.Paint;
06
import
android.os.Bundle;
07
import
android.util.DisplayMetrics;
08
import
android.view.MotionEvent;
09
import
android.view.View;
10
11
/**
12
*
...
13
*
14
*
@authorvlinux
15
*
16
*/
17
public
class
MultiTouchTestActivity
extends
Activity
{
18
/**
Calledwhentheactivityisfirstcreated.*/
19
@Override
20
public
void
onCreate(Bundle
savedInstanceState){
21
super
.onCreate(savedInstanceState);
22
//
setContentView(R.layout.main);
23
View
view=
new
MultiTouchView(
this
);
24
setContentView(view);
25
}
26
27
class
MultiTouchView
extends
View
{
28
29
private
float
x1;
30
private
float
y1;
31
private
float
x2;
32
private
float
y2;
33
34
public
MultiTouchView(Context
context){
35
super
(context);
36
//
TODOAuto-generatedconstructorstub
37
}
38
39
@Override
40
public
boolean
onTouchEvent(MotionEvent
event){
41
//
TODOAuto-generatedmethodstub
42
43
float
size
=event.getSize();
44
45
int
szi
=(
int
)
size;
46
int
dxi
=szi>>
12
;
47
int
dyit
=((
1
<<
12
)
-
1
);
48
int
dyi
=szi&dyit;
49
50
DisplayMetrics
metrics=getResources().getDisplayMetrics();
51
float
dx
=metrics.widthPixels*dxi/(
float
)
dyit;
52
float
dy
=metrics.heightPixels*dyi/(
float
)
dyit;
53
54
x1
=event.getX();
55
y1
=event.getY();
56
57
x2
=x1+dx;
58
y2
=y1+dy;
59
60
invalidate();
61
62
return
true
;
63
}
64
65
@Override
66
protected
void
onDraw(Canvas
canvas){
67
//
TODOAuto-generatedmethodstub
68
super
.onDraw(canvas);
69
70
float
r
=(
float
)
Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)
71
*
(y1-y2))/
2
;
72
r
=
50
>=
r?
50
:
r;
73
74
Paint
paint=
new
Paint();
75
paint.setColor(Color.BLUE);
76
canvas.drawCircle(x1,
y1,r,paint);
77
78
}
79
80
}
81
82
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: