我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android实现通过手势控制图片大小缩放的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android实现通过手势控制图片大小缩放的方法

本文实例讲述了Android实现通过手势控制图片大小缩放的方法。分享给大家供大家参考,具体如下:

该程序实现的是通过手势来缩放图片,从左向右挥动图片时图片被放大,从右向左挥动图片时图片被缩小,挥动速度越快,缩放比越大。程序思路如下:在界面中定义一个ImageView来显示图片,使用一个GestureDetector来检测用户的手势,并根据用户的手势在横向的速度来缩放图片。

在介绍这个实例前,先介绍一下Android中处理手势触摸事件的大概框架。

一、添加语句实现OnGestureListener手势监听器,代码如下:


public classGestureZoom extends Activity implements OnGestureListener

二、定义一个手势监听器的全局实例,并在onCreate函数中对其进行初始化,代码如下:


GestureDetector detector;
@Override
public void onCreate(Bundle savedInstanceState)
{
  ... ...
  detector = new GestureDetector(this);
}

三、重写onTouchEvent函数,把本Activity的触摸事件交给GestureDetector处理,代码如下:


@Override
public boolean onTouchEvent(MotionEvent me)
{
  return detector.onTouchEvent(me);
}

四、重写你需要监听的手势的函数,默认包括如下几种手势:

BooleanonDown(MotionEvent e):按下。
BooleanonFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY):拖过、滑动。
abstract voidonLongPress(MotionEvent e):长按。
BooleanonScroll(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY):滚动。
voidonShowPress(MotionEvent e):按下且未移动和松开。
BooleanonSingleTapUp(MotionEvent e):轻击。

这几种手势是系统默认提供的,根据描述大家可能还是不太明确这几种手势,最好的方法就是大家可以实现一个简单的程序实验一下就明白了。当然,除了这些默认的手势,也可以自行添加手势,篇幅有限就不再赘述了。

接下来给出通过滑动来实现图片缩放的实例,对比上面给出的基本框架,其实就是重写了onFling函数,在其中定义了如何处理滑动事件。

首先定义除了手势监听器外一些全局对象,并在onCreate函数中做相应的初始化:


GestureDetectordetector;
ImageViewimageView;
Bitmap bitmap;//保存图片资源
int width,height;// 记录图片的宽、高
floatcurrentScale = 1;// 记录当前的缩放比
Matrix matrix;//控制图片缩放的Matrix对象
@Override
public voidonCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    detector = new GestureDetector(this);
    imageView = (ImageView)findViewById(R.id.show);
    matrix = new Matrix();
    bitmap =BitmapFactory.decodeResource(this.getResources(), <你的图片资源>);//获取被缩放的源图片,因为不能对原有图片进行修改,所以必须转化为位图
    width = bitmap.getWidth();
    height = bitmap.getHeight();
    imageView.setImageBitmap(BitmapFactory.decodeResource(this.getResources(), <你的图片资源>));//设置ImageView初始化时显示的图片
}

一、触摸时间绑定手势监听器,和前面是一样的,就不再贴代码了。

二、重写onFling函数:


@Override
publicboolean onFling(MotionEvent event1, MotionEvent event2
, float velocityX, float velocityY)
{
   velocityX = velocityX > 4000 ? 4000 :velocityX;
   velocityX = velocityX < -4000 ? -4000: velocityX;
   //根据手势的速度来计算缩放比,如果velocityX>0,放大图像,否则缩小图像。
   currentScale += currentScale * velocityX/ 4000.0f;
   //保证currentScale不会等于0
   currentScale = currentScale > 0.01 ?currentScale : 0.01f;
   // 重置Matrix
   matrix.reset();
   // 缩放Matrix
   matrix.setScale(currentScale,currentScale , 160 , 200);
   BitmapDrawable tmp = (BitmapDrawable)imageView.getDrawable();
   //如果图片还未回收,先强制回收该图片
   if (!tmp.getBitmap().isRecycled())
   {
       tmp.getBitmap().recycle();
   }
   // 根据原始位图和Matrix创建新图片
   Bitmap bitmap2 =Bitmap.createBitmap(bitmap
       ,0, 0, width, height, matrix, true);
   // 显示新的位图
   imageView.setImageBitmap(bitmap2);
   return true;
}

布局文件仅仅添加了一个ImageView控件,大家自己画一下。在这里没有截图,因为截图也看不出效果,大家就自己试试吧。好了,至此就实现了通过手势滑动来实现图片缩放,以上内容学习自疯狂Android一书。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android视图View技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

您可能感兴趣的文章:Android实现本地图片选择及预览缩放效果Android实现ImageView图片缩放和拖动Android实现手势滑动多点触摸缩放平移图片效果(二)Android实现手势滑动多点触摸缩放平移图片效果Android手势滑动实现ImageView缩放图片大小Android开发之imageView图片按比例缩放的实现方法基于Android 实现图片平移、缩放、旋转同时进行Android编程实现图片的浏览、缩放、拖动和自动居中效果android 图片操作(缩放移动) 实例代码Android 图片缩放与旋转的实现详解Android控件实现图片缩放功能


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android实现通过手势控制图片大小缩放的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android实现通过手势控制图片大小缩放的方法

本文实例讲述了Android实现通过手势控制图片大小缩放的方法。分享给大家供大家参考,具体如下: 该程序实现的是通过手势来缩放图片,从左向右挥动图片时图片被放大,从右向左挥动图片时图片被缩小,挥动速度越快,缩放比越大。程序思路如下:在界面中
2022-06-06

Android手势控制实现缩放、移动图片

本文实例为大家分享了Android手势控制实现缩放、移动图片的方法,供大家参考,具体内容如下 新建一个触摸监听器类package com.liyong.btprinter; import android.graphics.Matrix;
2022-06-06

Android手势滑动实现ImageView缩放图片大小

本文推出了两种Android手势实现ImageView缩放图片大小的方法,分享给大家供大家参考,具体内容如下 方法一: 将以下代码写到MulitPointTouchListener.java中,然后对你相应的图片进行OnTouchListe
2022-06-06

Android实现手势控制ImageView图片大小

本文实例实现的主要功能是在ImageView中识别手势用以控制图片放大或缩小,具有一定的参考价值,分享给大家。public class MatrixImageView extends ImageView {private GestureDe
2022-06-06

Android实现旋转,放大,缩小图片的方法

本文实例讲述了Android实现旋转,放大,缩小图片的方法。分享给大家供大家参考,具体如下: 项目中需要做到一个预览图片的功能 最初设想自定义个一个view,在onDraw中用的是生成新的Bitmap,来放大,缩小 但由于手机内存是有限制的
2022-06-06

Android应用中实现手势控制图片缩放的完全攻略

一、概述 现在app中,图片预览功能肯定是少不了的,用户基本已经形成条件反射,看到小图,点击看大图,看到大图两个手指开始进行放大,放大后,开始移动到指定部位~~~ 我相信看图的整个步骤,大家或者说用户应该不希望被打断把~~~“我擦,竟然不能
2022-06-06

Android实现手势滑动多点触摸放大缩小图片效果

网上文章虽多,但是这种效果少之又少,我真诚的献上以供大家参考 实现原理:自定义ImageView对此控件进行相应的layout(动态布局). 这里你要明白几个方法执行的流程: 首先ImageView是继承自View的子类. onLayout
2022-06-06

Android编程实现图片放大缩小功能ZoomControls控件用法实例

本文实例讲述了Android编程实现图片放大缩小功能ZoomControls控件用法。分享给大家供大家参考,具体如下:MainActivity代码:package example.com.myapplication;import andro
2023-05-30

如何通过纯CSS实现图片的放大缩小效果的方法和技巧

如何通过纯CSS实现图片的放大缩小效果的方法和技巧在现代的网页设计中,图片的展示和处理是非常重要的一部分。而图片的放大缩小效果可以为网站的视觉呈现增添趣味和交互性。在这篇文章中,我们将介绍如何通过纯CSS实现图片的放大缩小效果,并提供具体的
2023-10-24

Android通过手势实现的缩放处理实例代码

网络上传言HTC的HERO-ROM支持多点触摸的论证大多源于浏览网页和图片时,能像IPhone一样通过手势来控制页面的大小。下面的例子是利用现有的API实现HERO浏览图片和网页的缩放功能。 主要原理是onTouchEvent事件中的参数
2022-06-06

如何通过纯CSS实现图片的缩放放大效果

在现代网页设计中,图片的缩放放大效果常常被使用。通过CSS,我们可以轻松地实现这一效果,而无需使用JavaScript或其他编程语言。本文将介绍如何使用纯CSS来实现图片的缩放放大效果,并提供具体的代码示例。实现图片的缩放放大效果可以使用C
2023-10-21

CSS实现图片放大缩小效果的技巧和方法

在网页设计中,添加图片元素是非常常见的操作。而为了提升用户体验,实现一些特殊效果是必不可少的。本文将介绍使用CSS来实现图片放大缩小效果的一些技巧和方法,并给出具体的代码示例。一、使用transform属性实现图片的缩放效果transfor
2023-10-21

Android通过自定义ImageView控件实现图片的缩放和拖动的实现代码

概述:通过自定义ImageView控件,在xml布局里面调用自定的组件实现图片的缩放。 public class
2022-06-06

Android多点触控实现对图片放大缩小平移,惯性滑动等功能

文章将在原有基础之上做了一些扩展功能: 1.图片的惯性滑动 2.图片缩放小于正常比例时,松手会自动回弹成正常比例 3.图片缩放大于最大比例时,松手会自动回弹成最大比例实现图片的缩放,平移,双击缩放等基本功能的代码如下,每一行代码我都做了
2022-06-06

Android App中实现可以双击放大和缩小图片功能的实例

先来看一个很简单的核心图片缩放方法:public static Bitmap scale(Bitmap bitmap, float scaleWidth, float scaleHeight) { int width = bitmap.ge
2022-06-06

如何通过纯CSS实现网页的平滑滚动背景图片放大缩小效果

在现代网页设计中,背景图片是非常常见的元素之一。为了提升网页的视觉效果,我们可以利用CSS来实现背景图片的平滑滚动放大缩小效果,从而给用户带来更好的浏览体验。首先,在HTML中创建一个具有该效果的容器元素:
2023-10-21

Android开发之imageView图片按比例缩放的实现方法

本文实例讲述了Android开发之imageView图片按比例缩放的实现方法。分享给大家供大家参考,具体如下: android:scaleType可控制图片的缩放方式,示例代码如下:2022-06-06

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录