- 浏览: 135457 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
zhonglunshun:
恩,这样子阿,我去试试,多谢大师指点。
linux 下的eclipse支持GBK -
glassprogrammer:
复杂化了吧,不用执行任何命令,直接在eclipse中设置编码的 ...
linux 下的eclipse支持GBK -
Function:
用右手 alt + /
Eclipse 的Alt+/有问题或者不好用 -
ahack:
在windows下我一般设置成alt+a左手就能搞定,何必两只 ...
Eclipse 的Alt+/有问题或者不好用 -
houyujiangjun:
"每一次都逼迫我不得不重装系统"快捷键冲突 ...
Eclipse 的Alt+/有问题或者不好用
图片的拖拽很基础也很实用,很多地方用到,直接上干货。
MainActivity.java:
layout_main.xml:
ps:如果有错误希望不吝赐教。
MainActivity.java:
package com.example.dragzoom; import android.app.Activity; import android.graphics.Matrix; import android.graphics.PointF; import android.os.Bundle; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; /** * * @author Zls *实现图片的拖拽和缩放,给图片添加onClickListener */ public class MainActivity extends Activity { private ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image = (ImageView) this.findViewById(R.id.image); image.setOnTouchListener(new MyTouchListener()); } public final class MyTouchListener implements OnTouchListener { private int mode = 0; //三种模式表示触摸类型 private static final int DRAG = 1; private static final int ZOOM = 2; private PointF startpPoint = new PointF(), midPoint; //startPoint用来记录拖拽的时候记录第一次拖拽的点,midPoint让图片缩放的时候不移动 private float startDis, endDis; //两者之比表示缩放比例 private Matrix oldMatrix = new Matrix(), newMatrix = new Matrix(); //两个矩阵 @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction() & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: //单手指按下表示为拖拽 mode = DRAG; oldMatrix.set(image.getImageMatrix()); startpPoint.set(event.getX(), event.getY()); break; case MotionEvent.ACTION_MOVE: // 手指在屏幕移动,该 事件会不断地触发 if (mode == DRAG) { float dx = event.getX() - startpPoint.x; // 得到在x轴的移动距离 float dy = event.getY() - startpPoint.y; // 得到在y轴的移动距离 newMatrix.set(oldMatrix); // 在没有进行移动之前的位置基础上进行移动 newMatrix.postTranslate(dx, dy); } else if (mode == ZOOM) { // 缩放 endDis = countDis(event); // 结束距离 if (endDis > 10f) { float scale = endDis / startDis; // 得到缩放倍数 newMatrix.set(oldMatrix); newMatrix.postScale(scale, scale, midPoint.x, //应用缩放 midPoint.y); } } break; case MotionEvent.ACTION_UP: //单手指或多手指抬起都恢复初始状态 case MotionEvent.ACTION_POINTER_UP: mode = 0; break; case MotionEvent.ACTION_POINTER_DOWN: //多手指按下 mode = ZOOM; startDis = countDis(event); if (startDis > 10f) { midPoint = midPoint(event); } break; } image.setImageMatrix(newMatrix); //让image显示最新的矩阵位置和大小,不执行则以上的触摸事件就无效鸟 return true; } } private static PointF midPoint(MotionEvent event) { float dx = (event.getX(1) + event.getX(0)) / 2; float dy = (event.getY(1) + event.getY(0)) / 2; return new PointF(dx, dy); } // private static float countDis(MotionEvent event) { float a = event.getX(1) - event.getX(0); float b = event.getY(1) - event.getY(0); float c = (float) Math.sqrt(a * a + b * b); return c; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
layout_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ImageView android:id="@+id/image" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="matrix" android:src="@drawable/luobing"/> </RelativeLayout>
ps:如果有错误希望不吝赐教。
- DragZoom.zip (1.4 MB)
- 下载次数: 0
发表评论
-
android的handler机制
2016-04-26 14:32 0本文原创,花了半天时间理解handler,把自己的理解贡献出 ... -
android studio 使用代码混淆
2016-03-13 22:46 881对于一些安全性要求比较高的应用,需要使用代码混淆,andro ... -
android图片选取与调用系统裁剪
2016-01-27 15:14 4800话不多说,直接给出一个工具类,想要的拿去 packa ... -
Url出现非法参数异常
2016-01-26 13:13 4278访问网址出现:illegal character in sc ... -
环信学习笔记(一)
2015-11-12 14:59 684小弟 从今天开始学习环信的sdk,主要是学习里 ... -
asmack搜索添加好友
2015-10-28 15:06 1321在做添加好友之间,必须要对xmpp的好友订阅有一定的了解, ... -
asmack登录冲突(多端登录冲突)处理
2015-10-20 18:08 4341功能:登录冲突; 效果:弹出对话框,您的账号在xxx ... -
asmack断线重连实现
2015-10-20 17:32 2669在以前的asmack版本中,断线重连是需要我们自己做的,原理 ... -
如何监听到asmack联系人资料变动
2015-09-28 17:01 1378开发中的点滴,排版有点丑,博客也不常写,有点丑,别嫌弃。实 ... -
Android Studio 引用jar和so 文件
2015-02-28 17:33 4772Android Studio 引用jar和so 文件 ... -
Android Studio中获取sha1证书指纹数据的方法
2015-02-28 17:00 5063Android Studio 获取sha1 开发软件 ... -
android获取手机信息
2015-02-05 13:48 1145/** * 获取android当前可用内存大小 ... -
How to use OKHTTP to make a post request
2015-01-30 11:57 1321How to use OKHTTP to make a ... -
Xmpp发送自定义IQ包
2015-01-05 10:34 4247Xmpp发送自定义的iq包 因为需要做扩 ... -
android保存联系人到通讯录
2014-12-31 12:36 1613Android保存联系人 上一篇文章讲了如何获取所 ... -
android获取联系人所有信息
2014-12-30 14:53 3453只要是开发和手机通讯路有关的应用,总要学会获取联系人信息, ... -
SQLiteBindOrColumnIndexOutOfRangeException
2014-12-24 18:22 1566SQLiteBindOrColumnIndexOutOfR ... -
openfire在eclipse中的环境搭建和编译详解
2014-11-19 21:31 2238因为项目需要去研究了openfire,刚开始按照视频教程 ... -
我理解的互联网思维
2014-11-06 17:02 438我对互联网思维的理解 几个月前,出于好奇与兴趣,我接 ... -
This message is already in use.的解决办法
2014-11-06 14:38 4897This message is already in us ...
相关推荐
Csharp处理图片拖动和缩放功能,Csharp处理图片拖动和缩放功能
LabVIEW 拖动图片和自动缩放图片,NI公司自己都没有做出来过,非常的好。
主要为大家详细介绍了C#控件picturebox实现图像拖拽和缩放,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
NULL 博文链接:https://1002878825-qq-com.iteye.com/blog/2177368
NULL 博文链接:https://1002878825-qq-com.iteye.com/blog/1173968
C#图片拖拽缩放工具源码。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
android imageview 多点触碰(Multitouch)实现图片拖拽移动缩放 RT 仿照官方版本的图片浏览效果 新手
在Unity里面实现UI窗口的操作,包含拖动,单边拖动缩放,对角拖拽缩放功能
C#PictureBox实现图片拖动和缩放,利用鼠标事件实现 VS2015 .net Framwork4.5.2
该demo 是使用 hammer.js 插件来实现 对图片的拖拽 缩放,以及控制图片拖到屏幕外的一个例子
js图片缩放效果制作鼠标滚动图片等比例缩放代码
1.双指拖动和在拖动过程中控制图片缩放. 2.绘制的线条与背景图片实现正片叠底的混合效果.
unity插件 UI图片简单缩放与拖拽
各种js地图拖动和缩放效果以及图片拖动效果显示 共享给大家 共同进步
Android对图片进行拖拽和缩放,很实用的功能
图片的拖动与缩放
一个小程序用的双指缩放组件,相关文章地址见博客《微信小程序使用自定义组件实现图片双指缩放效果》。(现在资源怎么不可以设置为不要积分了0.)
微信小程序图片缩放 拖动,亲测可用(别人写的,拿来分享下)。因为小程序程序包大小有限制,把两个gif图片删除就行了,删除不影响使用