文档章节

完整手势

mutouzhang
 mutouzhang
发布于 2014/04/12 15:24
字数 448
阅读 47
收藏 1
package com.example.ontouch;

import java.security.PublicKey;

import android.os.Bundle;
import android.R.integer;
import android.app.Activity;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
/**
 * 
* 类名称:MainActivity   
* 类描述:   
* 创建人:dogoodsoft   
* 创建时间:2014-4-12 下午2:55:37   
* 修改人:dogoodsoft   
* 修改时间:2014-4-12 下午2:55:37   
* 修改备注:   
* @version    
*	因为要监听触摸屏的触摸事件和手势时间,所以该Activity必须实现OnTouchListener和OnGestureListener两个接口,并重写其中的方法。
 */
public class MainActivity extends Activity implements OnTouchListener,OnGestureListener{

	int count;
	//创建一个用于识别手势的GestureDetector对象
	private GestureDetector detector = new GestureDetector(this);
	
	int[] images = new int[]{R.drawable.pic1,R.drawable.pic2,R.drawable.pic3};
	
	private int index;
	private ImageView imageView;
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        imageView = (ImageView) findViewById(R.id.image);
        imageView.setImageResource(images[index]);//设置初始画面
        
        imageView.setOnTouchListener(this);
        
        //不设就没法处理轻触以外的事件了,例如抛掷动作
        imageView.setLongClickable(true);
        detector.setIsLongpressEnabled(true);
        
    }

    public void goNext()
	{
		index++;
		index = Math.abs(index % images.length);
		imageView.setImageResource(images[index]);
	}
    public void goLast()
   	{
    	index--;
   		index = Math.abs(index % images.length);
   		imageView.setImageResource(images[index]);
   	}

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }


	@Override
	public boolean onDown(MotionEvent e)
	{
		// TODO Auto-generated method stub
		return false;
	}


	@Override
	public void onShowPress(MotionEvent e)
	{
		// TODO Auto-generated method stub
		
	}


	@Override
	public boolean onSingleTapUp(MotionEvent e)
	{
		// TODO Auto-generated method stub
		return false;
	}


	@Override
	public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
			float distanceY)
	{
		// TODO Auto-generated method stub
		return false;
	}


	@Override
	public void onLongPress(MotionEvent e)
	{
		// TODO Auto-generated method stub
		System.out.println("===长按");
	}


	//在抛掷动作中被调用
	@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY)
	{
		if (velocityX < 0 )	//手指向左滑
		{
			count++;
			goNext();
			System.out.println("===index"+index);
			System.out.println("===count"+count);
			System.out.println("==方向11111");
			
		}
		else if(velocityX > 0 ){ //手指向右划
			goLast();
			System.out.println("====count"+count);
			System.out.println("==方向22222");
		}
		return false;
	}

	//触摸事件
	@Override
	public boolean onTouch(View v, MotionEvent event)
	{
		detector.onTouchEvent(event);
		return true;
	}
    
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

   
    <ImageView 
        android:id="@+id/image"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        />
</LinearLayout>


© 著作权归作者所有

共有 人打赏支持
mutouzhang
粉丝 6
博文 190
码字总数 91235
作品 0
洛阳
程序员
20分钟学会Android全手势处理,你要的都有

以前都是迷茫过日子,沉迷游戏,也是被腾讯害了我的前半生。谁都有人生最灰暗的一段日子,索性后来被一耳光打醒,才开始懂得珍惜时间,才会觉得时间是最贵重的,得拼命地挤。我的github13年申...

翻滚吧李博
2017/11/30
0
0
swift-视图跟随手指移动

要实现让一个view跟随手指在屏幕上移动的思路如下: 1.记录手指移动时的相对位移量 2.根据相对位移量改变view的frame。 实现思路清晰后,实现就简单了。 一、实现方式一 重写 UIResponder 的...

zh_iOS
2016/12/19
25
0
TakWolf/Android-Lock9View

Android Lock9View An Android grid lock screen view with a callback interface. ScreenShot Demo Usage Gradle implementation 'com.takwolf.android:lock9view:0.1.1' Layout example 1......

TakWolf
2014/12/13
0
0
HoloLens 平台的 3D 视频播放器--VR for VLC

VR for VLC 是基于著名的开源播放器项目 VLC 而开发的,根据 HoloLens 的设备特性开发出了 VR 播放模式,支持播放 3D 左右格式的视频,此应用同时也继承了 VLC 播放器所有的音乐视频播放的完整...

易天
2017/05/12
475
0
写一个轮播图,学会 React Native

我学习 Web 的第一课,就是学习写一个轮播图,在写轮播图时自然地将 html、css、js、DOM、组件设计等各方面简单的知识点给串起来了。学习 React Native 的时候,也自然用起了这个思路,挺好用...

穿越过来的键盘手
07/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

idea 通过jpa自动生成实体类

引入jpa包 打开persistence窗口 右键选择连接数据库 如果数据库没配置,则可以在下图选项中配置 选择好数据库和实体类的生成地址

斩神魂
26分钟前
1
0
tcpdump 命令

TCPDUMP简介 tcpdump 是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络的数据包。tcpdump 使用 libpcap 库来抓取网络报,这个库在几乎在所有的 Linu...

寰宇01
34分钟前
2
0
软件的Alpha、Beta、RC、GA版本的区别

Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。 Beta:也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出。 RC:(Release Candidate) 顾名思义...

乔老哥
35分钟前
2
0
慢雾安全海贼王:从DApp亡灵军团,细说区块链安全

本文转载自微信公号“万向区块链”,为慢雾安全负责人海贼王在万向区块链实验室举办的2018上海区块链国际周-技术开放日上的演讲速记整理。 这张图总结了智能合约攻防的各个方面,分为两大部分...

万向区块链
41分钟前
13
0
Matlab编程之——卷积神经网络CNN代码解析

卷积神经网络CNN代码解析 deepLearnToolbox-master是一个深度学习matlab包,里面含有很多机器学习算法,如卷积神经网络CNN,深度信念网络DBN,自动编码AutoE ncoder(堆栈SAE,卷积CAE)的作...

酒逢知己千杯少
41分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部