利用缩放因子进行图片的放大缩小,效果图如下

在实现过程中如出现直接崩溃的情况:在全局配置文件中加入android:largeHeap="true"即可解决问题,在文章最后有现成代码

步骤:

1.布局文件 android:scaleType="matrix"记得加上,不然没有效果

2.控件实例化及处理机制的取代

3.进行逻辑处理,并利用Matrix进行图片处理其中nowScale 及beforeScale为自定义的float类型的全局变量!,具体见最后代码**

代码如下:

布局文件

android:id="@+id/imgzoom"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:scaleType="matrix"

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

Java文件

public class MainActivity extends Activity {

private ImageView mImgzoom;

private float beforeScale=1.0f;//之前的伸缩值

private float nowScale;//当前的伸缩值

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

myScale();

}

private void initView() {

mImgzoom = (ImageView) findViewById(R.id.imgzoom);

}

private void myScale(){

final ScaleGestureDetector scaleGestureDetector=new ScaleGestureDetector(this, new ScaleGestureDetector.OnScaleGestureListener() {

@Override

public boolean onScale(ScaleGestureDetector detector) {

nowScale=detector.getScaleFactor()*beforeScale;

//设置缩放的范围

if (nowScale>3||nowScale<0.1){

beforeScale=nowScale;

return true;

}

Log.i("Scale","nowScale="+nowScale);

Matrix matrix=new Matrix();

matrix.setScale(nowScale,nowScale);

Bitmap bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.myphoto);//获取图片

bitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);//转化成bitmap格式

mImgzoom.setImageBitmap(bitmap);

beforeScale=nowScale;//保存上一次的缩放值!

return false;

}

@Override

public boolean onScaleBegin(ScaleGestureDetector detector) {

return true;//记得改成ture;

}

@Override

public void onScaleEnd(ScaleGestureDetector detector) {

}

});

mImgzoom.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

scaleGestureDetector.onTouchEvent(event);

return true;

}

});

}

}

本文同步分享在 博客“计蒙不吃鱼”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

android 图片手动放大,Android图片的手动放大缩小相关推荐

  1. Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)

    前言:经常会看到有一些app的banner界面可以实现循环播放多个广告图片和手动滑动循环.本以为单纯的ViewPager就可以实现这些功能.但是蛋疼的事情来了,ViewPager并不支持循环翻页.所以 ...

  2. 我的Android进阶之旅------android Matrix图片随意的放大缩小,拖动(转)

    step1:新建一个项目DragAndZoom,并准备一张照片放在res/drawable-hdpi目录下,如下图所示: step2: 设置应用的UI界面,在main.xml中设置: [html] v ...

  3. 微信android手机中点击大图片会自动放大图片

    自己使用的是微信Android客户端,使用img标签的src属性将图片设置好了以后,在微信中调试,点击图片竟然放大,自己没写放大图片的方法,也没有调用wx.previewImage()方法,最后查找, ...

  4. android图片缩放动画,Android动画共享元素(例列表图片放大到详情图片动画)

    一.什么是共享元素 简单来说共享元素就是两个Activity中都拥有此元素,在第二个Activity中进行强调而展示一些的动画效果.例如圆按钮的漂移动画.图片的放大动画. 二.为什么使用共享元素 主要 ...

  5. android+放大缩小图片+有jar嘛,Android相册支持点击放大图片,滑动切换图片,手势放大缩小...

    [实例简介] 项目使用了开源框架Universal-Image-Loader 显示本地图库所有照片 点击放大,单击退出 双击放大缩小 支持左右滑动查看图片 支持手势放大缩小图片 [实例截图] [核心代 ...

  6. 我的Android进阶之旅------Android图片处理(Matrix,ColorMatrix)

    本文转载于:http://www.cnblogs.com/leon19870907/articles/1978065.html 在编程中有时候需要对图片做特殊的处理,比如将图片做出黑白的,或者老照片的 ...

  7. android studio点击图片,如何在Android Studio中的模拟器图库中添加图像?

    如何在Android Studio中的模拟器图库中添加图像? 我正在开发图像过滤器应用程序. 但是,如果我没有任何图像,就无法真正尝试. 我知道我可以在电话中对其进行测试,但这并不相同,因为我需要错误 ...

  8. Android Hybrid开发实战之图片的交互

    最近一直在学习Hybrid开发,如何在H5页面调用Android原生接口,并返回值,以及回调. 学习了一段时间,总算是有点收获,效果也做出来了.于是写下这篇博客,记录一下. 本文中我以2个接口示例,来 ...

  9. Android NDK编译libjpeg-turbo压缩图片

    Android开发中,我们经常要面对图片压缩,大部分人使用Android Bitmap进行压缩,还有一些使用libjpeg压缩,之前有用过libjpeg,压缩效果相当惊艳,在保证图片损失较小的同时,还 ...

最新文章

  1. 图像检索:几种基于纹理特征的图像检索算法
  2. Django的是如何工作的
  3. C++ Primer 5th笔记(7)chapter7 类:字面值常量类
  4. 【百家稷学】深度学习在计算摄影中的方法与应用(vivo技术分享)
  5. 创建featureclass,为它赋别名,并移动到数据集下
  6. 高科技加持,升哲科技助力打造首都智慧社区
  7. node.js 框架基本功能
  8. java调度问题的贪心算法_java代码,多机调度问题,怎么解释
  9. Linux 常用ping命令详解
  10. 42家企业入选中国卓越健康雇主榜;2020高交会聚焦3大亮点与5大趋势 | 美通企业日报...
  11. 【基础】PHP变量及变量作用域
  12. 【最佳实践】瀚高数据库 Windows企业版v6.0.4 的安装
  13. 新增spring Converter解析器中使用lambda表达式代替匿名内部类是启动报错:... does the class parameterize those types?
  14. win7无法自动获取dns服务器地址,Windows7系统DNS服务器故障怎么解决?
  15. 创业初始,王兴每周工作超过100小时,互联网巨头各有各的辛酸
  16. 富士胶片首次参展贵阳数博会;佳能携多元化专业影像设备亮相CCBN2021;七彩虹建设国内首家GPU博物馆 | 全球TMT...
  17. 微信小程序获取上一个页面的路由地址
  18. Router Password Kracker(路由器密码破解工具)
  19. kafka查看topic列表和topic消息
  20. 你的电脑里还在装着360杀毒软件吗?最好用的,免费的都在这里,给你的电脑换个好的杀软~!...

热门文章

  1. vue RSA加密算法(jsencrypt)的使用
  2. JOJ 上的典型题目分类以及参考书目 (以及我的整理)
  3. 信号(signal,kill,raise)
  4. 基于Seq2Seq的问答摘要与推理问题方案
  5. 用js验证敏感词汇(汉字)
  6. Learning Better Lossless Compression Using Lossy Compression
  7. 子佩短信管家 v1.0.0
  8. 计算机未来发展报告,2020-2026年中国电子计算机行业发展深度调研与未来趋势报告...
  9. ubuntu系统vim常用命令学习以及ubuntu软件下载安装
  10. 开关电源常用保护电路-过热、过流、过压以及软启动保护电路