Android图片的手动放大缩小
利用缩放因子进行图片的放大缩小,效果图如下
在实现过程中如出现直接崩溃的情况:在全局配置文件中加入android:largeHeap="true"即可解决问题,在文章最后有现成代码
步骤:
1.布局文件 android:scaleType="matrix"记得加上,不然没有效果
2.控件实例化及处理机制的取代
3.进行逻辑处理,并利用Matrix进行图片处理其中nowScale 及beforeScale为自定义的float类型的全局变量!,具体见最后代码**
代码如下:
布局文件
<ImageViewandroid: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;//当前的伸缩值@Overrideprotected 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() {@Overridepublic 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;}@Overridepublic boolean onScaleBegin(ScaleGestureDetector detector) {return true;//记得改成ture;}@Overridepublic void onScaleEnd(ScaleGestureDetector detector) {}});mImgzoom.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {scaleGestureDetector.onTouchEvent(event);return true;}});}
}
Android图片的手动放大缩小相关推荐
- android 图片手动放大,Android图片的手动放大缩小
利用缩放因子进行图片的放大缩小,效果图如下 在实现过程中如出现直接崩溃的情况:在全局配置文件中加入android:largeHeap="true"即可解决问题,在文章最后有现成代码 ...
- android+放大缩小图片+有jar嘛,Android相册支持点击放大图片,滑动切换图片,手势放大缩小...
[实例简介] 项目使用了开源框架Universal-Image-Loader 显示本地图库所有照片 点击放大,单击退出 双击放大缩小 支持左右滑动查看图片 支持手势放大缩小图片 [实例截图] [核心代 ...
- Html里canvas签名板签名,签字内容还可以手动放大缩小移动
声明:这篇文章属于一个IT小白的我第一次发,技术内容引自网络.我只是一个搬运工和砖瓦工. 如果内容涉及侵权,请告知我可以删除文章.并且本代码属于技术交流无意涉嫌商业行为. [内容] 实现在线的PDF文 ...
- VUE图片预览放大缩小插件viewer
VUE图片预览放大缩小插件viewer 一.安装依赖 npm install v-viewer --save 二.main.js内引用并注册调用 //main.js import Viewer fro ...
- Android开发--Matrix(一)--实现图片的动态放大缩小
Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放.平移.旋转等操作. 首先介绍一下矩阵运算.加法和减法就不用说了,太简单了,对应位相加就好.图像处理,主要用到的是 ...
- 我的Android进阶之旅------android Matrix图片随意的放大缩小,拖动(转)
step1:新建一个项目DragAndZoom,并准备一张照片放在res/drawable-hdpi目录下,如下图所示: step2: 设置应用的UI界面,在main.xml中设置: [html] v ...
- android image对象改变,【Android学习】动态放大缩小ImageView里的图片,运用Matrix对象来....
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* 设置图片缩小的比例 */ double scale=0.8; /* 计算出这次要缩小的比例 */ scaleWidth=(float) (scale ...
- Android 展示一个图片,可以双击放大/缩小(放大后可以移动)
布局***.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...
- 图片随手势放大缩小功能
主界面: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...
最新文章
- GRNet网络:3D网格进行点云卷积,实现点云补全
- Hibernate【XXXX.hbm.xml】总结
- 专访William Kennedy:如何学习Go语言
- 会话技术 —— Cookie 实现原理 || 在idea编辑器中设置代码的模板
- Redis 21问,你接得住不?
- 《循序渐进学Spark》一1.6 使用Spark Shell开发运行Spark程序
- SAP Spartacus运行时错误 - The pipe cxUrl could not be found!
- webpack.optimize.CommonsChunkPulgin is not a constructor???请看CommonsChunkPlugin VS SplitChunksPlugin
- asp.net core合并压缩资源文件引发的学习之旅
- 边工作边刷题:70天一遍leetcode: day 51
- 将获得到的json赋值到下拉框
- 怎么让背景铺满整个页面_word怎么让背景图片铺满整个页面
- java 获取年和季度_java获取当前时间的年周月季度等的开始结束时间
- Docker容器安装Mysql8
- 上周热点回顾(12.5-12.11)
- 华为云ecs服务器镜像上传到容器镜像服务SWR
- 执行rm -rf /效果
- python中import上级文件夹
- 【20212121】Python基础 05条件控制语句
- 2023年数学建模美赛A题(A drought stricken plant communities)分析与编程