01 import android. app. Activity;
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 * @ author vlinux
15 *
16 */
17 public class MultiTouchTestActivity extends Activity {
18/** Called when the activity is first created .*/
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 // TODO Auto-generated constructor stub
37}
38
39 @ Override
40 public boolean onTouchEvent (MotionEvent event ){
41 // TODO Auto-generated method stub
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
54x1 = event. getX ();
55 y1 = event. getY ();
56
57x2 = x1 + dx;
58 y2 = y1 + dy;
59
60 invalidate ();
61
62 return true;
63}
64
65 @ Override
66 protected void onDraw (Canvas canvas ){
67 // TODO Auto-generated method stub
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}
Author "ljbal"