import android.app.Activity;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.os.Bundle;

import android.util.DisplayMetrics;

import android.view.MotionEvent;

import android.view.View;

 

/**

* ...

* @author vlinux

*/

public class MultiTouchTestActivity extends Activity {

        /** Called when the activity is first created. */

        @Override

        public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                // setContentView(R.layout.main);

                View view = new MultiTouchView(this);

                setContentView(view);

        }

 

        class MultiTouchView extends View {

 

                private float x1;

                private float y1;

                private float x2;

                private float y2;

 

                public MultiTouchView(Context context) {

                        super(context);

                        // TODO Auto-generated constructor stub

                }

 

                @Override

                public boolean onTouchEvent(MotionEvent event) {

                        // TODO Auto-generated method stub

 

                        float size = event.getSize();

 

                        int szi = (int) size;

                        int dxi = szi >> 12;

                        int dyit = ((1 << 12) - 1);

                        int dyi = szi & dyit;

 

                        DisplayMetrics metrics = getResources().getDisplayMetrics();

                        float dx = metrics.widthPixels * dxi / (float) dyit;

                        float dy = metrics.heightPixels * dyi / (float) dyit;

 

                        x1 = event.getX();

                        y1 = event.getY();

 

                        x2 = x1 + dx;

                        y2 = y1 + dy;

 

                        invalidate();

 

                        return true;

                }

 

                @Override

                protected void onDraw(Canvas canvas) {

                        // TODO Auto-generated method stub

                        super.onDraw(canvas);

 

                        float r = (float) Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2)

                                        * (y1 - y2)) / 2;

                        r = 50 >= r ? 50 : r;

 

                        Paint paint = new Paint();

                        paint.setColor(Color.BLUE);

                        canvas.drawCircle(x1, y1, r, paint);

 

                }

 

        }

 

}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. 【Android】Android(安卓)UI 开发_习题
  2. 百度云推送
  3. Android(安卓)SurfaceFlinger原理详解
  4. BrowserslistError: Unknown version 67
  5. Eclipse下加载AndroidSDK源码
  6. Android(安卓)WakeLock 使用总结
  7. basic4android 开发教程
  8. Android(安卓)9.0 Bluetooth源码分析(三)蓝
  9. Android(安卓)4.0 Phone拨号和来电流程分
  10. Android中文API(114)——TabWidget