Android实现滑动屏幕切换图片

本文实例为大家分享了Android实现滑动屏幕切换图片的具体代码,供大家参考,具体内容如下

activity_main.xml 文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="com.example.administrator.hand_gliding.MainActivity">

  <ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/imageView"
    android:src="@drawable/a1"/>

</LinearLayout>

MainActivity.java 文件代码:

package com.example.administrator.hand_gliding;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

  //定义图片
  private int[] resId = new int[]{
      R.drawable.a1,R.drawable.a2,R.drawable.a3,R.drawable.a4,
      R.drawable.a5,R.drawable.a6,R.drawable.a7
  };
  //图片下标序号
  private int count = 0;
  //定义手势监听对象
  private GestureDetector gestureDetector;
  //定义ImageView对象
  private ImageView iv;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    iv = (ImageView)findViewById(R.id.imageView);        //获取ImageView控件id
    gestureDetector = new GestureDetector(onGestureListener);  //设置手势监听由onGestureListener处理

  }

  //当Activity被触摸时回调
  public boolean onTouchEvent(MotionEvent event){
    return gestureDetector.onTouchEvent(event);
  }
  //自定义GestureDetector的手势识别监听器
  private GestureDetector.OnGestureListener onGestureListener
      = new GestureDetector.SimpleOnGestureListener(){
    //当识别的手势是滑动手势时回调onFinger方法
    public boolean onFling(MotionEvent e1,MotionEvent e2,float velocityX,float velocityY){
      //得到手触碰位置的起始点和结束点坐标 x , y ,并进行计算
      float x = e2.getX()-e1.getX();
      float y = e2.getY()-e1.getY();
      //通过计算判断是向左还是向右滑动
      if(x > 0){
        count++;
        count%=(resId.length-1);    //想显示多少图片,就把定义图片的数组长度-1
      }else if(x < 0){
        count--;
        count=(count+(resId.length-1))%(resId.length-1);
      }

      iv.setImageResource(resId[count]); //切换imageView的图片
      return true;
    }
  };
}

界面设置效果:

这个功能的代码里有很多没见过的单词,本人英语学的不好,需要查查意思然后找这些方法的功能。

可以用这个加上切换动画做一个图片查看器。

由于没用模拟器,用的是真机调试,给不了滑动的实物图,抱歉抱歉。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android基于ImageSwitcher实现图片切换功能

    左右切换图片控件大家都用ViewPager, ViewFipper比较多吧,我之前也用ViewPager实现了,使用ViewPager实现左右循环滑动图片,有兴趣的可以去看下,今天介绍的是基于ImageSwitcher实现的左右切换图片,先上截图吧 好了,接下来来看代码吧,第一张图是一个GridView,点击item跳转到第二个界面,第一个界面可以忽略,主要是讲解ImageSwitcher的左右却换图片,先看布局文件 <?xml version="1.0" encoding=&q

  • Android编程单击图片实现切换效果的方法

    本文实例讲述了Android编程单击图片实现切换效果的方法.分享给大家供大家参考,具体如下: 新建一个Android项目,命名为FrameLayout 此实例主要操作src文件夹下的MainActivity.Java类文件和res/layout下的activity_main.xml布局文件 1.布局主页面代码activity_main.xml↓ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

  • Android实现图片轮播切换实例代码

    利用Android的ViewFlipper和AnimationUtils实现图片带有动画的轮播切换,其中当点击"上一张"图片时,切换到上一张图片:当点击"下一张"图片时,切换到下一张图片.其效果图如下: 设置布局文件,其内容如下: activity_image_flipper_shade.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xm

  • Android开发实现的图片点击切换功能示例

    本文实例讲述了Android开发实现的图片点击切换功能.分享给大家供大家参考,具体如下: java 代码 public class MainActivity extends AppCompatActivity { //定义一个访问图片的数组 int[] images = new int[]{ R.drawable.java, R.drawable.javaee, R.drawable.swift, R.drawable.ajax, R.drawable.html, }; //用于图片切换 int

  • Android开发实现高仿优酷的客户端图片左右滑动切换功能实例【附源码下载】

    本文实例讲述了Android开发实现高仿优酷的客户端图片左右滑动切换功能.分享给大家供大家参考,具体如下: 本例是用ViewPager去做的实现,支持自动滑动和手动滑动,不仅优酷网,实际上有很多商城和门户网站都有类似的实现: 具体思路: 1. 工程中需要添加android-support-v4.jar,才能使用ViewPager控件. 2. 图片的自动切换: 可使用Timer或者ScheduledExecutorService,这个有多重方式可以实现. 同时要切换底部的dots(园点) 3.Ha

  • Android自定义ImageView实现点击两张图片切换效果

    笔者在做一个项目中遇到的一个小阻碍,于是就实现了这个ImageView达到开发需求 情景需求 > 点击实现图片的切换 可能有人会说了,这还不简单?为ImageView设置点击事件,然后通过重写的onClick(View v)方法判断定义的某一个flag进行图片的切换,伪代码如下: private boolean flag; public void onClick(View v){ if(flag){ mImageView.setImageResource(R.drawable.xx1); }el

  • android控件实现多张图片渐变切换

    本来项目是用的viewpager实现的轮播滚动,但是客户觉得轮播的效果太大众化了,于是就要我们改成渐变切换的效果.听到这需求,我最先想到是给viewpager设置切换动画,但是无论怎么设置动画,都要手动切换的时候才有效果.于是我就自定义了一个控件,利用淡入淡出动画实现了这效果,还是先上效果图,没效果图说再多也没用. public class Gradient extends RelativeLayout { private List<ImageView> imageViews; private

  • Android游戏开发:实现手势操作切换图片的实例

    对于Android 的手势不光在软件中会经常用到,比如浏览器中的翻页,滚动页面等等;当然其实在我们开发Android游戏的时候加上了Android手势操作更会让游戏增加一个亮点,比如一般的CAG.PUZ等类型的游戏选择关卡.简单背景的移动等,都可以使用手势来操作即可,类似前段时间很火的<愤怒的小鸟>,小鸟这个游戏确实不错,我所看到的唯一的亮点是这款游戏的创意!说实话,现在的游戏没有做不出来的只有想不出来的好创意.回到话题来,那么下面我们来了解下什么是Android 手势!        手势识

  • Android开发之使用ViewPager实现图片左右滑动切换效果

    Android中图片的左右切换随处可见,今天我也试着查阅资料试着做了一下,挺简单的一个小Demo,却也发现了一些问题,话不多说,上代码~: 使用了3个xml文件作为ViewPager的滑动page,布局都是相同的,如下只展示其中之一: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/

  • Android使用ViewFlipper实现图片切换功能

    今天给大家简单的讲一下Android手势,目前市场上的App中手势的运用比较少. Android提供了两种手势: ①.Android提供了手势检测,并为手势检测提供了相应的监听器 ②.Android允许开发者添加手势,并提供了相应的API识别用户手势 在之前的一片博客我讲过如何使用ViewPager实现图片滑动切换 地址:Android使用ViewPager实现图片滑动预览效果 但是ViewPager拥有自带的手势识别,意思就是它会自动识别手势是右滑还是左滑. 今天我讲一下如何使用ViewFli

随机推荐