文档章节

完整手势

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
iOS-事件响应链的学习

前言 事件处理完整过程; 1,在手指触摸屏幕时,会产生一个事件,系统会把这个事件添加到UIApplication管理的事件队列中。 2,取出队列中最前面的事件,交给主窗口Window。 3,主窗口会逐级向...

麦兜卖鱼丸
2016/06/14
102
1

没有更多内容

加载失败,请刷新页面

加载更多

lucene 评分要素解析

基本规则:

Java搬砖工程师
26分钟前
0
0
ubutnu 14.04 安装JIRA

系统版本:Ubuntu 14.04 下载jira安装文件 sudo wget https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.1.9-x64.bin 修改文件权限 sudo chmod 777 atl......

Kampfer
37分钟前
0
0
软件开发模型优缺点及其适用范围

瀑布模型、快速原型模型、增量模型、螺旋模型 瀑布模型也称软件生存周期模型。 优点: (1)它在软件工程中占有重要地位,它提供了软件开发的基本框架,这比依靠“个人技艺”开发软件好得多。...

无极之岚
37分钟前
0
0
孩子们各显神通对付 iOS 12「屏幕使用时间」的限制

简评:2018 年秋季,苹果公司推出了 iOS 12,其中备受好评的一项改变是:增加了屏幕使用时间限制,以减轻沉迷手机的状况。三个月过去后,这项功能似乎并没有对孩子造成太多困扰,道高一尺魔高...

极光推送
42分钟前
2
1
springCloud Spring Boot mybatis分布式微服务云架构-docker-feign-hystrix-ribbon(七)

简介 在上一节中,我们讨论了feign+hystrix在项目开发中,除了考虑正常的调用之外,负载均衡和故障转移也是关注的重点,这也是feign + ribbon+hystrix的优势所在,本节我们就讨论一下在feign...

sccspuercode
42分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部