就不说什么了,有注释 基本有基础的都看得懂

欢迎加入我的交流群: 386451316

main.xml文件

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/mo_i"

tools:context=".MainActivity" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/im"

android:src="@drawable/ic_launcher"/>

java代码

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tm_i = (FrameLayout) findViewById(R.id.mo_i);

im = (ImageView) findViewById(R.id.im);

// 触摸事件

tm_i.setOnTouchListener(new OnTouchListener() {

float current;// 第一次距离

float ladtcuss = -1; // 最后的距离

@Override

public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {// 获取事件

case MotionEvent.ACTION_DOWN:// 按下的操作

break;

case MotionEvent.ACTION_MOVE:// 移动

/**

* 获取多个触摸点 需要用真机调试

*/

if (event.getPointerCount() >= 2) {

float offsetX = event.getX(0) - event.getX(1);

float offsetY = event.getY(0) - event.getY(0);

// 使用勾股定理 获取两点距离

current = (float) Math.sqrt(offsetX * offsetX + offsetY

* offsetY);

if(ladtcuss<0){

ladtcuss = current;

}else{

if(current-ladtcuss>5){

System.out.println("1");

FrameLayout.LayoutParams lp = (LayoutParams)im.getLayoutParams();

lp.width=(int) (1.1f * im.getWidth());

lp.height=(int) (1.1f * im.getHeight());

im.setLayoutParams(lp);

ladtcuss = current;

}else if(ladtcuss-current>5){

System.out.println("0");

FrameLayout.LayoutParams lp = (LayoutParams)im.getLayoutParams();

lp.width=(int) (0.9f * im.getWidth());

lp.height=(int) (0.9f * im.getHeight());

im.setLayoutParams(lp);

ladtcuss = current;

}

}

}

// 获取触摸点的个数

System.out.println("motoll---->" + event.getPointerCount());

System.out.println(String.format("x1:%f y1:%f x2:%f y2%f",

event.getX(0), event.getY(0), event.getX(1),

event.getY(1)));

/**

* 以下是获取一个触摸点

*/

// 图片位于 FrameLayout 中

// FrameLayout.LayoutParams lp = (LayoutParams)

// im.getLayoutParams();

// lp.leftMargin = (int) event.getX();

// lp.topMargin = (int) event.getY();

// im.setLayoutParams(lp);

// //输出触摸点

// System.out.println(String.format("x:%f, y:%f",event.getX(),event.getY()));

break;

case MotionEvent.ACTION_UP:// 弹起

break;

}

// false表示事件没有后续事件触发

return true;

}

});

}

private FrameLayout tm_i;

private ImageView im;

}

原文:http://www.cnblogs.com/Striver-zw/p/4188994.html

android 图片放大缩小 多点触摸,Android 多点触摸(图片放大缩小)相关推荐

  1. android学习笔记---58_拖拉功能与多点触摸,实现图片的拖拉和缩放功能

    Java技术qq交流群:JavaDream:251572072 2013/5/14 58_拖拉功能与多点触摸 ------------------------------------- android ...

  2. android imageview 多点触碰(MultiTouch)实现图片拖拽移动缩放

    刚用android手机 发现手机自带的图片浏览器挺酷 可以用手指移动 缩放 还有动画效果 Intent intent = new Intent(Intent.ACTION_VIEW);         ...

  3. android 是否可触摸,android 2.0可能支持多点触摸?

    android 2.0可能支持多点触摸? 最近有流言称google即将推出的android 2.0操作系统,即大家认为的donut(名字好怪,叫油炸焦圈)会支持多点触摸功能,类似zoom in/out ...

  4. Android游戏开发之单点触摸与多点触摸

    Android游戏开发之单点触摸与多点触摸的响应方式 游戏开发中的触摸事件 在游戏开发中监听屏幕触摸事件须要在View中重写父类onTouchEvent方法,在重写的方法中拦截用户触摸屏幕的一些信息, ...

  5. 【Android 应用开发】多点触控 ( 多点触控事件 | PointerId | PointerIndex | 坐标获取 | 触摸点个数 )

    文章目录 I . 多点触控事件 II . PointerId 与 PointerIndex 简介 III . 本次 PointerId 与 PointerIndex 获取 IV . PointerId ...

  6. android多点触控自由对图片缩放

    在系统的相册中,观看相片就可以用多个手指进行缩放. 要实现这个功能,只需要这几步: 1.新建项目,在项目中新建一个ZoomImage.java public class ZoomImageView e ...

  7. 适用于各种连锁企业15寸多点触摸android收款机消费机pos机

    我公司的15寸多点触摸android收款机,采用android4.0系统,运行稳定,没有windows系统易感染病毒,容易死机的问题.自带RJ45网口,带wifi,可以外接3G上网,支持串口打印机,支 ...

  8. Android 实现类似于QQ空间相册的点击图片放大,再点后缩小回原来位置

    前几天看到了有人在android5.0上实现了如下图一样的效果,我自己就去搜了下.参考了国外一篇文章和国内的一篇文章,最终实现了想要的效果.具体参考的网址我已经贴到文章末尾,大家可以去英文的那个网站看 ...

  9. android 手势放缩_手把手教你打造支持手势放大缩小的ImageView

    写在前面 最近有了新的任务,学习的时间比以前少了不少,Java回炉的文估计是得缓缓了,不过每周一篇尽量保质保量.最近感觉我文写的有点不好,因为我写东西除非必要,不然概念性的东西我基本上都是一笔带过-- ...

  10. android 美团商家详情页,Android仿美团团购详情页下拉图片放大效果,简单可直接用在项目中...

    一:介绍 大家在项目中,可能需要像美团团购详情页面下拉的时候美食图片放大的效果,在这里就给大家介绍如何实现这种效果,只有很少的代码,而且控件全部是安卓源生控件. 二:运行效果图 三.然后来看看如何实现 ...

最新文章

  1. 第一章:1.2.1系统建模
  2. 动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
  3. android bitmap上传服务器,Android 上传图片到服务器时将bitmap转换为byte[]最后转换为String...
  4. jQuery 判断元素是否在屏幕可见区域内
  5. 3、java基础:抽象类与接口的区别
  6. Caused by: java.lang.IncompatibleClassChangeError: Implementing class
  7. app图标圆角角度_教你如何绘制风格统一的APP界面图标
  8. 思科查看服务器启动配置文件,启动配置检查UCS
  9. 注释嵌套注释_DIY注释
  10. 助力APP尽情“撒币”!阿里云正式上线移动直播问答解决方案
  11. (37)Gulp 文件清除
  12. 基站寻找邻居节点索引号的MATLAB代码
  13. 【5分钟paper】基于强化学习的策略搜索算法的自主直升机控制
  14. 计算器代码(C语言)
  15. 《信号与系统学习笔记》—信号与系统的时域和频域特性(二)
  16. openwrt 公板硬件方案介绍
  17. pdf 分形 张济忠_清华大学出版社-图书详情-《分形(第2版)》
  18. 扫雷android设计思路,Flash扫雷游戏设计思路与步骤(4)
  19. 鸡兔同笼python程序怎么写_梦见鸡_周公解梦梦到鸡是什么意思_做梦梦见鸡好不好_周公解梦官网...
  20. 纯手工html+css实现静态游戏网首页(免费拿源码)

热门文章

  1. discuz手机版模板开发
  2. MAC安装vmware虚拟机,安装window xp Ghost步骤
  3. TCP服务端收到syn但是不回复syn ack问题分析
  4. cpu使用时间百分比过高 排查
  5. linux 进程 崩溃被杀 原因查找
  6. Oracle ebs(E-Business Suite) 电子商务套件 简介
  7. linux cmake 交叉编译配置 简介
  8. docker 无法正常启动 解决方法
  9. linux ssh 提示 too many authentication failures for root root的身份验证失败太多 解决办法
  10. linux chpasswd命令 批量修改用户密码