多点触摸交互处理,放大缩小
来源:互联网 发布:office2011 mac破解版 编辑:程序博客网 时间:2024/05/07 02:59
package com.example.multouch;import android.app.Activity;import android.os.Bundle;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.TextView;public class MainActivity extends Activity {private FrameLayout fl;private TextView tv1;private ImageView iv1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);fl = (FrameLayout) findViewById(R.id.container);tv1 = (TextView) findViewById(R.id.tv1);iv1 = (ImageView) findViewById(R.id.iv1);// 2.设置事件监听器fl.setOnTouchListener(new OnTouchListener() {float currentDistance;float lastDistance = -1;@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:System.out.println("action down");break;case MotionEvent.ACTION_MOVE:tv1.setText(String.format("x:%f ; y:%f ;触摸点数:" + event.getPointerCount(),event.getX(), event.getY()));// 获取多个触摸点for (int i = 0; i < event.getPointerCount(); i++) {System.out.println(String.format("x" + i + ":%f ; y" + i + ":%f ", event.getX(i), event.getY(i)));tv1.setText(String.format("x:%f ; y:%f ;触摸点数:" + i,event.getX(i), event.getY(i)));}// 图片拖动FrameLayout.LayoutParams lp = (LayoutParams) iv1.getLayoutParams();lp.leftMargin = (int) event.getX();lp.topMargin = (int) event.getY();iv1.setLayoutParams(lp);// 图片放大缩小if (event.getPointerCount() >= 2) {float offsetX = event.getX(0) - event.getX(1);float offsetY = event.getY(0) - event.getY(1);currentDistance = (float) Math.sqrt(offsetX * offsetX + offsetY * offsetY);if (lastDistance<0) {lastDistance = currentDistance;}else {if (currentDistance - lastDistance >10) {System.out.println("fang da"); FrameLayout.LayoutParams lp1 = (LayoutParams) iv1.getLayoutParams();lp1.width = (int) (1.1f*iv1.getWidth());lp1.height = (int) (1.1f*iv1.getHeight());iv1.setLayoutParams(lp1);lastDistance = currentDistance;}else if (lastDistance - currentDistance >10){System.out.println("suo xiao");FrameLayout.LayoutParams lp1 = (LayoutParams) iv1.getLayoutParams();lp1.width = (int) (0.9f*iv1.getWidth());lp1.height = (int) (0.9f*iv1.getHeight());iv1.setLayoutParams(lp1);lastDistance = currentDistance;}}}break;case MotionEvent.ACTION_UP:System.out.println("action up");break;default:break;}return true;}});}}/** * View.setOnTouchListener(OnTouchListener l) * event.getX() * event.getY() * event.getPointerCount() 触摸点个数 event.getX(0) 获取第一个触摸点位置 event.getY(0) * 图片的拖动:通过获取 imageView 通过触摸点位置重置imageView */
0 0
- 多点触摸交互处理,放大缩小
- Android多点触摸交互处理,放大缩小图片
- Androin学习笔记五十五: Android多点触摸交互处理,放大缩小图片
- android 多点触摸 放大 缩小 图片
- Android多点触摸放大缩小图片
- android 多点触摸 放大 缩小 图片
- android 多点触摸 放大 缩小 图片
- WPF多点触摸放大缩小旋转
- Android多点触摸交互处理
- Android多点触摸交互处理
- Android多点触摸交互处理
- Android多点触摸交互处理
- android 多点触摸交互处理
- Android图片查看支持双击放大缩小、多点触摸
- Android图片查看支持双击放大缩小、多点触摸
- 两个手指多点触摸 滑动 放大缩小 缩放
- Oak先生-Android的多点触摸之图片放大缩小
- IE 10 禁用多点触摸放大缩小页面
- 第十六周项目二 用指针玩转字符串-连接两个字符串
- 第16周项目3—用函数指针调用函数
- 图算法 -- 最小生成树Prim算法朴素版
- unix笔记
- mysql不能创建外键
- 多点触摸交互处理,放大缩小
- 有关Floyd算法问题
- 聚来宝是真的吗?
- 背包问题
- 兔子--android SDK支持的3中不可逆转的加密算法
- 1->Oracle10g体系结构概述
- thrift介绍及应用(二)—简单应用
- 第十六周项目二——用指针玩字符串(5.去除句子第一个单词前的空格)
- SQL 用游标读取一个表集合