Android通過手勢實現的縮放處理

fmms 14年前發布 | 35K 次閱讀 Android Android開發 移動開發

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);
    
     }
    
    

    }

}</pre>

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!