<ImageViewandroid:id="@+id/imageview"android:layout_width="wrap_content"android:layout_height="wrap_content"                android:src="@drawable/zixun"android:scaleType="matrix"/>关键点:缩放的内容不能是图片的背景,一定要是图片的内容

public class HelpActivity extends Activity
{private static final int NONE = 0;private static final int DRAG = 1;private static final int ZOOM = 2;private int mode = NONE;private float oldDist;private Matrix matrix = new Matrix();private Matrix savedMatrix = new Matrix();private PointF start = new PointF();private PointF mid = new PointF();protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.help);ImageView view = (ImageView) findViewById(R.id.imageview);
//        view.setImageResource(R.drawable.icon);view.setOnTouchListener(mOnTouchListener);}OnTouchListener mOnTouchListener = new OnTouchListener(){public boolean onTouch(View v, MotionEvent event){Trace.Log("------------------"+event.toString());ImageView view = (ImageView) v;switch (event.getAction() & MotionEvent.ACTION_MASK){case MotionEvent.ACTION_DOWN:savedMatrix.set(matrix);start.set(event.getX(), event.getY());mode = DRAG;break;case MotionEvent.ACTION_UP:case MotionEvent.ACTION_POINTER_UP:mode = NONE;break;// 多点触控case MotionEvent.ACTION_POINTER_DOWN:oldDist = spacing(event);if (oldDist > 10f){savedMatrix.set(matrix);midPoint(mid, event);mode = ZOOM;}break;case MotionEvent.ACTION_MOVE:if (mode == DRAG){matrix.set(savedMatrix);matrix.postTranslate(event.getX() - start.x, event.getY() - start.y);}else if (mode == ZOOM){float newDist = spacing(event);if (newDist > 10f){matrix.set(savedMatrix);float scale = newDist / oldDist;matrix.postScale(scale, scale, mid.x, mid.y);Trace.Log("------------------"+newDist);}}break;}view.setImageMatrix(matrix);
//            view.invalidate();return true;}};private float spacing(MotionEvent event){float x = event.getX(0) - event.getX(1);float y = event.getY(0) - event.getY(1);return FloatMath.sqrt(x * x + y * y);}private void midPoint(PointF point, MotionEvent event){float x = event.getX(0) + event.getX(1);float y = event.getY(0) + event.getY(1);point.set(x / 2, y / 2);}public void onClickBack(View view){backToCardSelect();}
}

ImageVIew 需要在最上面一层,否则可能不会生效

ImageView 缩放相关推荐

  1. ImageView缩放选项

    ImageView.ScaleType 将图片边界缩放到所在view边界时的缩放选项. Options for scaling the bounds of an image to the bounds ...

  2. android做题imageview缩放,巧用ViewPager实现驾考宝典做题翻页效果

    效果如下所示: 思路: a.利用ViewPager自带的动画效果,略作修改,实现滑动覆盖翻页效果. b.移动时加入阴影效果. 1.关键代码如下所示: public class ReaderViewPa ...

  3. 可缩放性ImageView(可以放大缩小)

    由于项目需求的原因,最近一直在研究可缩放性ImageView,用本文来记录一下最近所学: 该ImageView的实现功能有: 1)初步打开时,图片按比例满屏(填充ImageView)显示. 2)在放大 ...

  4. Android直播头像动画,iOS 仿抖音直播头像缩放动画

    效果图 仿抖音直播头像缩放效果, 简单写了demo, 思路简单, 直接用的递归重复调用, 呈上所有代码. @interface YCXHeaderZoomViewController () @prop ...

  5. 修改图片尺寸并且缩放和裁剪

    直入主题 首先我需要的效果是:拍照或选取本地图片后,能对图片进行缩放,然后裁剪成4:3比例的尺寸大小. 所以首先在 UIImagePickerController的didFinishPickingMe ...

  6. ImageView 使用详解

    极力推荐文章:欢迎收藏 Android 干货分享 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一.ImageView 的继承关系 二.ImageView ...

  7. Android ImageView 详解

    目录 一.图片加载方法 二.图片缩放类型 三.updateDrawable() 原理 四.图片加载时会按缩放类型,会影响图片占用的内存大小吗? 五.总结 一.图片加载方法 在项目中,加载图片时,都会用 ...

  8. iOS_20_微博自己定义可动画切换的导航控制器

    终于效果: AnimatedNavigationController.h // // AnimatedNavigationController.h // 20_帅哥no微博 // // Created ...

  9. ios UIScrollView 基础属性

    转 UIScrollView 原理 在滚动过程当中,其实是在修改原点坐标.当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器.假如在计时器到点后没有发生手指移动事件,那么 scr ...

最新文章

  1. php输出tab,设置Tab按钮列表 · DolphinPHP1.5.0完全开发手册-基于ThinkPHP5.1.41LTS的快速开发框架 · 看云...
  2. bug:记录 Caused by: java.lang.NoClassDefFoundError: Could not initialize class
  3. python 预测下一年数据 程序_python中神经网络预测时间序列数据
  4. jquerymobile多页面切换
  5. 阿里云 centos7.2 安装openstack报错
  6. Python爬虫入门教程 7-100 蜂鸟网图片爬取之二 1
  7. 什么是真正的互联网思维?
  8. 数据科学入门前需要知道的10件事
  9. 连续值特征分桶区间设置
  10. python 支持erp自动化操作
  11. 华为服务器bios系统,华为服务器bios配置详解
  12. 【简书交友】阿群1986: 一个专注于修电脑做系统的青岛小哥
  13. 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结
  14. 面向毕业、职称的SCI论文高效写作方法
  15. 第18.6.1章 JDK9的新特性—Java的REPL工具: jShell命令
  16. spark 不在 sudoers 文件中。此事将被报告。
  17. 计算机软件蒋勇,西南科技大学考研研究生导师简介-蒋勇
  18. Overview of the TREC-2011 Microblog Track
  19. anaconda prompt 终端运行py文件
  20. 仿拼多多评团列表倒计时循环滚动 Android

热门文章

  1. python培训班价格-北京Python班
  2. 6翻了C语言,《嗨翻C语言》随书练习六 6章 二叉树简单例子
  3. spring中的Aware
  4. 多台服务器搭建Spark集群
  5. C++标准库类模板(stack)和 队列(queue)
  6. base64格式的图片上传阿里云
  7. 微信公众号的网页授权如何在本地调试?
  8. BZOJ4327 : JSOI2012 玄武密码
  9. Jetty 9.0.0 首个里程碑出现
  10. XML 命名空间(XML Namespaces)介绍以及节点读取方法