国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android 多點觸摸應用

2019-11-09 17:35:50
字體:
來源:轉載
供稿:網友

package com.example.touchdemo;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.FrameLayout;import android.widget.FrameLayout.LayoutParams;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity {	PRivate FrameLayout flt_touch;	private ImageView iv_img;	//當前的距離 	float correntDistance;	//最后上次的距離	float lastDistance=-1;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		flt_touch=(FrameLayout) findViewById(R.id.flt_touch);		iv_img=(ImageView) findViewById(R.id.iv_img);		flt_touch.setOnTouchListener(new OnTouchListener() {						@Override			public boolean onTouch(View v, MotionEvent event) {				switch (event.getAction()) {				case MotionEvent.ACTION_DOWN:					//觸摸按下					Log.d("touch", "觸摸按下");//					Toast.makeText(MainActivity.this, "觸摸按下", Toast.LENGTH_SHORT).show();					break;				case MotionEvent.ACTION_MOVE:				   //觸摸移動					Log.d("touch", "觸摸移動");					//獲取觸摸點打印出來					Log.d("touch", "x: "+event.getX()+", y: "+event.getY());//					Toast.makeText(MainActivity.this, "觸摸移動", Toast.LENGTH_SHORT).show();					// 重新設置控件布局					FrameLayout.LayoutParams lp=(LayoutParams) iv_img.getLayoutParams();					lp.leftMargin=(int) event.getX();					lp.topMargin=(int) event.getY();					iv_img.setLayoutParams(lp);					//獲取多個觸摸點  event.getX(1)  event.getX(2)					Log.d("touch", "x1: "+event.getX(0)+", y1: "+event.getY(0));					if(event.getPointerCount()==2){						Log.d("touch", "x2: "+event.getX(1)+", y2: "+event.getY(1));					}					//獲取觸摸點總數量					Log.d("touch", String.valueOf(event.getPointerCount()));										//放大或縮小圖片									if(event.getPointerCount()>=2){					float offsetX=event.getX(0)-event.getX(1);					float offsetY=event.getY(0)-event.getY(1);					correntDistance=(float)Math.sqrt(offsetX*offsetX+offsetY*offsetY);					Log.d("touch", correntDistance+"");					if(lastDistance<0){						lastDistance=correntDistance;					}else{						//理論是0,但是安卓手指按下,總有一些偏大偏小變化,所以這里值是5以上比較合試												if(correntDistance-lastDistance>5){							Log.d("touch", "放大");							FrameLayout.LayoutParams lpImg=(LayoutParams) iv_img.getLayoutParams();							lpImg.width=(int) (iv_img.getWidth()*1.1f);							lpImg.height=(int) (iv_img.getHeight()*1.1f);							iv_img.setLayoutParams(lp);							lastDistance=correntDistance;						}else if(lastDistance-correntDistance>5){							Log.d("touch", "縮小");							FrameLayout.LayoutParams lpImg=(LayoutParams) iv_img.getLayoutParams();							lpImg.width=(int) (iv_img.getWidth()*0.9f);							lpImg.height=(int) (iv_img.getHeight()*0.9f);							iv_img.setLayoutParams(lp);							lastDistance=correntDistance;						}					}					}					break;				case MotionEvent.ACTION_UP:					//觸摸彈起					Log.d("touch", "觸摸彈起");//					Toast.makeText(MainActivity.this, "觸摸彈起", Toast.LENGTH_SHORT).show();					break;				default:					break;				}				return true;			}		});	}}
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/flt_touch"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <ImageView         android:id="@+id/iv_img"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/ic_launcher"/>h</FrameLayout>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宿迁市| 克什克腾旗| 常宁市| 临清市| 大方县| 松原市| 扎兰屯市| 铁岭县| 泸西县| 华阴市| 沁源县| 金阳县| 翼城县| 建昌县| 克拉玛依市| 廊坊市| 来安县| 惠安县| 汾阳市| 永福县| 永和县| 开远市| 西贡区| 庆元县| 墨玉县| 荆门市| 定日县| 广灵县| 隆化县| 东山县| 双柏县| 雷州市| 紫阳县| 平谷区| 乌兰浩特市| 溧水县| 泸西县| 洱源县| 宜丰县| 祁东县| 清丰县|