`

多点触摸(图片缩放为例)

阅读更多
多点触摸的事件跟单点是大同小异的,上个图片缩放的代码,供大家参考一下

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
import android.widget.ImageView;

public class MainActivity extends Activity implements OnTouchListener{
	
	private FrameLayout framelaout;
	
	private ImageView imageView;
	
	private int oldlength = -1;
	
	private int currentlength = -1;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		framelaout = (FrameLayout) findViewById(R.id.container);
		imageView = (ImageView) findViewById(R.id.img);
		framelaout.setOnTouchListener(this);
	}

	@Override
	public boolean onTouch(View arg0, MotionEvent arg1) {
		// TODO Auto-generated method stub
		switch (arg0.getId()) {
		case R.id.container:
			switch (arg1.getAction()) {
			case MotionEvent.ACTION_DOWN:
				System.out.println("鼠标落下");
				break;
			case MotionEvent.ACTION_MOVE:
				if(arg1.getPointerCount()>1){
					double x = arg1.getX(1)-arg1.getX(0);
					double y = arg1.getY(1)-arg1.getY(0);
					currentlength = (int) Math.sqrt(x*x+y*y);
					if(oldlength>0){
						if(oldlength-currentlength>5){
							FrameLayout.LayoutParams lp = (LayoutParams) imageView.getLayoutParams();
							lp.width = (int) (0.9f * imageView.getWidth()); 
							lp.height = (int) (0.9f * imageView.getHeight());
							//防止缩到0的话就不再变大了
							if(lp.width<100){
								break;
							}
							imageView.setLayoutParams(lp);
						}
						if(currentlength-oldlength>5){
							FrameLayout.LayoutParams lp = (LayoutParams) imageView.getLayoutParams();
							lp.width = (int) (1.1f * imageView.getWidth()); 
							lp.height = (int) (1.1f * imageView.getHeight()); 
							imageView.setLayoutParams(lp);
						}
					}
					oldlength = currentlength;
				}
				System.out.println("鼠标移动");
				break;
			case MotionEvent.ACTION_UP:
				System.out.println("鼠标抬起");
				break;
			default:
				break;
			}
			break;

		default:
			break;
		}
		
		//如果不返回true的话,只会接收到up事件
		return true;
	}
}

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/pkq" />

</FrameLayout>
分享到:
评论

相关推荐

    Android自定义多点触摸图片缩放控件

    在Android开发中,创建一个支持多点触摸图片缩放的自定义控件是一项常见的需求,尤其在设计交互式应用或图像查看器时。这个控件允许用户通过两个手指的动作来放大或缩小显示的图片,提供了丰富的用户体验。下面将...

    多点触摸框架与图片缩放、等例子

    本项目“多点触摸框架与图片缩放”就是基于C#和WPF实现的开源解决方案,旨在提供一个直观、易用且功能丰富的多点触摸应用实例。 首先,让我们详细了解一下多点触摸技术。多点触摸允许用户同时使用两个或更多个手指...

    android 多点触摸图片缩放的具体实现方法

    在本篇文章中,我们将探讨如何在Android应用中实现多点触摸图片缩放的具体方法。 首先,我们需要创建一个可以响应多点触摸事件的布局。在给出的XML布局文件中,我们可以看到一个`RelativeLayout`作为根视图,其中...

    Demo 多点触摸 缩放 图片

    在图片缩放的场景下,捏合手势是最关键的,它模拟了人们在现实世界中调整物体大小的动作,一个手指固定,另一个手指靠近或远离,以实现放大或缩小。 要实现这个功能,开发者通常会使用UIKit(iOS)或Android SDK中...

    多点触摸 图片的缩放

    以上就是实现多点触摸图片缩放的基本流程。在实际开发中,你可能需要进一步优化,例如添加平移功能(使用UIPanGestureRecognizer)以便在缩放后可以移动图片,或者添加双击手势来恢复图片到原始大小。在L026_...

    安卓多点触摸缩放图片

    在安卓平台上,开发一款应用以实现多点触摸缩放图片是一项常见的需求,这通常涉及到手势识别和图像处理技术。在本项目中,开发者创建了一个应用,允许用户通过多点触摸来缩放图片,并通过单点触摸移动图片。下面将...

    安卓图片多点触摸缩放源码

    总的来说,这个源码示例是一个实用的教程,可以帮助开发者理解如何在Android应用中实现图片的多点触摸缩放功能,同时也为自定义视图的开发提供了参考。通过深入研究并理解这段代码,开发者可以更好地掌握Android中的...

    C# winfrom 触摸屏图片缩放 .rar

    在本文中,我们将深入探讨如何使用C# Winform开发一个支持触摸屏的图片缩放应用程序。这个项目的核心技术包括RegisterTouchWindow的使用、控件的子类化以及自定义消息处理,以及通过触摸手势实现图片的等比例缩放。...

    Android手机屏幕截图和图片多点触摸缩放

    本文将详细探讨两种在Android手机上实现屏幕截图的方法,并重点介绍一种用于图片多点触摸缩放的工具类,帮助开发者创建更加互动和用户体验良好的应用。 首先,让我们来看看Android手机如何进行屏幕截图。方法一,...

    android 2.1 多点触摸演示

    在`ACTION_MOVE`事件中,计算每个点的移动距离和方向,从而实现例如缩放、旋转或平移等多点触摸操作。 五、多点触摸的应用场景 多点触摸技术在Android应用开发中有广泛的应用,如: - 图片查看器:通过双指缩放...

    通过单点多点触摸来进行图片缩放的智能控件

    在Android开发中,实现“通过单点多点触摸来进行图片缩放的智能控件”是一项常见的需求,这通常涉及到用户交互和图像处理技术。这个控件的实现基于Android的触摸事件处理机制,允许用户通过手指的触摸动作来对图片...

    多点触摸缩放unity3d

    两个手指滑动缩放画面用于Android手机端,没有进行ios的测试

    director12下的多点触摸示例程序

    在IT行业中,多点触摸...总之,多点触摸在Director12中的应用为创意设计和互动体验带来了无限可能。通过理解和实践"DirectorMultitouch"示例程序,开发者可以更好地掌握这一技术,创造出更具吸引力的多媒体应用程序。

    图片缩放和多点触摸.zip

    在Android开发中,图片缩放和多点触摸是两个关键的技术点,特别是在创建交互式用户界面和图形应用时。本文将深入探讨这两个概念,并结合源码分析如何在Android平台上实现它们。 首先,我们来理解图片缩放。在...

    多点触控 图片的缩放

    多点触控图片缩放功能为用户提供了更自然、直观的交互体验。通过监听触摸事件、计算缩放比例、更新图片视图以及使用Gallery容器管理多张图片,开发者可以构建出功能丰富的图片查看应用。同时,优化性能是确保流畅...

    Android多点触摸示例源代码

    这个名为"DoubleTouchDemo"的应用程序示例,旨在帮助开发者理解如何在Android平台上实现多点触摸功能。 一、Android多点触摸基础 Android系统通过`MotionEvent`类支持多点触摸。`MotionEvent`对象包含了触摸事件的...

    安卓源码图片缩放和多点触摸1.zip

    在安卓开发中,图片缩放和多点触摸是两个重要的功能点,特别是在开发涉及用户交互的应用,如图像查看器、地图应用或者任何需要用户手势控制的界面时。本压缩包"安卓源码图片缩放和多点触摸1.zip"包含了实现这两个...

    安卓源码图片缩放和多点触摸.zip

    在安卓平台上,开发一款能够支持图片缩放和多点触摸的应用是常见的需求,这涉及到Android SDK中的多个关键知识点。此压缩包"安卓源码图片缩放和多点触摸.zip"很可能包含了一个示例项目,用于演示如何实现这些功能。...

Global site tag (gtag.js) - Google Analytics