Android实现图片左右滑动效果_Android

关于滑动效果,在Android中用得比较多,本示例实现的滑动效果是使用ViewFlipper来实现的,当然也可以使用其它的View来实现。接下来就让我们开始实现这种效果。

接下来我们看一下程序结构图:

MainActivity文件中代码:

package com.android.flip;

import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.GestureDetector.OnGestureListener;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ViewFlipper;

/**
 * Android实现左右滑动效果
 * @Description: Android实现左右滑动效果

 * @File: MainActivity.java

 * @Package com.android.flip

 * @Author Hanyonglu

 * @Date 2012-02-12 上午10:44:04

 * @Version V1.0
 */
public class MainActivity extends Activity implements OnGestureListener {
  private ViewFlipper flipper;
  private GestureDetector detector;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    detector = new GestureDetector(this);
    flipper = (ViewFlipper) this.findViewById(R.id.ViewFlipper1);

    flipper.addView(addImageView(R.drawable.one));
    flipper.addView(addImageView(R.drawable.two));
    flipper.addView(addImageView(R.drawable.three));
    flipper.addView(addImageView(R.drawable.four));
    flipper.addView(addImageView(R.drawable.five));
  }

  private View addImageView(int id) {
    ImageView iv = new ImageView(this);
    iv.setImageResource(id);
    return iv;
  }

  @Override
  public boolean onTouchEvent(MotionEvent event) {
    // TODO Auto-generated method stub
    return this.detector.onTouchEvent(event);
  }

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

  @Override
  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
      float velocityY) {
    if (e1.getX() - e2.getX() > 120) {
      this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
      this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
      this.flipper.showNext();
      return true;
    } else if (e1.getX() - e2.getX() < -120) {
      this.flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_in));
      this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_right_out));
      this.flipper.showPrevious();
      return true;
    }

    return false;
  }

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

  }

  @Override
  public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
      float distanceY) {
    // 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;
  }
}

布局界面相对比较简单,我们只需要加入ViewFlipper就可以,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >

  <ViewFlipper android:id="@+id/ViewFlipper1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
  </ViewFlipper>
</LinearLayout>

为了使其滑动时有一定的特效,我们需要加入Animation效果,说到Animation,我们先看下如何在Android中实现自定义Animation。自定义的Animation是以XML格式定义的,定义好的XML文件存放在res/anim中。

一般的Animation有以下四种类型:

  1. Alpha:渐变透明度动画效果
  2. Scale:渐变尺寸伸缩动画效果
  3. Translate:画面转换位置移动动画效果
  4. Rotate:画面转换位置移动动画效果

push_left_in.xml文件中代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <translate android:fromXDelta="100%p" android:toXDelta="0"
    android:duration="500" />
  <alpha android:fromAlpha="0.1" android:toAlpha="1.0"
    android:duration="500" />
</set>
  push_left_out.xml文件中代码:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <translate android:fromXDelta="0" android:toXDelta="-100%p"
    android:duration="500" />
  <alpha android:fromAlpha="1.0" android:toAlpha="0.1"
    android:duration="500" />
</set>

push_right_in.xml文件中代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <translate android:fromXDelta="-100%p" android:toXDelta="0"
    android:duration="500" />
  <alpha android:fromAlpha="0.1" android:toAlpha="1.0"
    android:duration="500" />
</set>

push_right_out.xml文件中代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  <translate android:fromXDelta="0" android:toXDelta="100%p"
    android:duration="500" />
  <alpha android:fromAlpha="1.0" android:toAlpha="0.1"
    android:duration="500" />
</set>

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索Android左右切换
android实现左右滑动、实现页面左右滑动效果、实现图片左右滑动效果、jq 实现左右滑动效果、js实现左右滑动效果,以便于您获取更多的相关知识。

时间: 2024-09-17 04:39:00

Android实现图片左右滑动效果_Android的相关文章

Android实现图片轮播效果的两种方法_Android

大家在使用APP的过程中,经常会看到上部banner图片轮播的效果,那么今天我们就一起来学习一下,android中图片轮询的几种实现方法: 第一种:使用动画的方法实现:(代码繁琐) 这种发放需要:两个动画效果,一个布局,一个主类来实现,不多说了,来看代码吧: public class IamgeTrActivity extends Activity { /** Called when the activity is first created. */ public ImageView image

仿优酷Android客户端图片左右滑动(自动滑动)

最终效果: 页面布局main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent

如何在Android中实现渐显按钮的左右滑动效果_Android

先看下运行效果:    程序结构: MainActivity文件中代码: 复制代码 代码如下: package com.android.buttonpageflipper;import android.app.Activity;import android.graphics.PixelFormat;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Gra

Android ViewPager实现图片轮播效果_Android

在app中图片的轮播显示可以说是非常常见的实现效果了,其实现原理不过是利用ViewPager,然后利用handler每隔一定的时间将ViewPager的currentItem设置为当前item的position+1即可.先来看看效果图吧:   就是实现这样的一个轮播广告的效果. 因为这个是自己为了练习仿照某旅游类App做的,所以这里的数据是使用抓包工具抓取的,准备数据等工作就不在这里赘述了,反正数据的添加大体都是相同的.我的思路是这样的,从网络上实时的获取数据(当然你也可以将数据写死),然后通过

Android使用ViewPager实现无限滑动效果_Android

前言 其实仔细想一下原理还是挺简单的.无非是当我们滑动到最后一页,再向后滑动时定位到第一页;当我们滑动到第一页,再向前滑动时定位到最后一页. 但是,相信很多朋友都遇到过这个问题:视图的过度效果不自然. 小编也是通过百度和谷歌查找了很多解决方案,实验了很多方法,总结了一个相对不错的方法,接下来给各位分享下滑动效果.实现细节以及一些踩过的坑. 1.无限滑动效果(左右无限滑动) 事先准备好2张滑动图片(有想试验的小伙伴,自备图片啊,小编就不提供了...) 运行效果图(左右无限循环): 为了显示更加直观

Android实现顶部导航菜单左右滑动效果_Android

本文给大家介绍在Android中如何实现顶部导航菜单左右滑动效果,具体内容如下第一种解决方案: 实现原理是使用android-support-v4.jar包中ViewPager控件,在ViewPager控件中设置流布局,再在流布局中设置几项TextView,给每一个TextView设置相关参数,事件等.关于ViewPager控件可以设置全屏幕滑动效果,当然也可以实现局部滑动效果,下面介绍导航菜单. 关于导航菜单,相信大家对它并不陌生,比如在新闻客户端中就经常使用左右滑动菜单来显示不同类别的新闻.

Android实现广告图片轮播效果_Android

本文实例介绍了Android广告轮播图效果实现方法,分享给大家供大家参考,具体内容如下 首先看下一下布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:

Android UI实现单行文本水平触摸滑动效果_Android

本文实例为大家分享了单行文本水平触摸滑动效果,通过EditText实现TextView单行长文本水平滑动效果. 下一篇再为大家介绍 多行文本折叠展开效果,自定义布局View实现多行文本折叠和展开. 1.初衷 最近做应用的时候有用到TextView单行长文本,当文本内容过长时候又想实现触摸水平滑动效果.网上找了很多,都没有看到有效解决方案. 其中,看到最常见的也是最笨拙滴采用重写TextView并继承实现touch 和 Gesture手势.个人觉得很麻烦. 后来经提醒发现了其实最简单的方案: 直接

Android组件Glide实现图片平滑滚动效果_Android

Glide是一款基于Android的图片加载和图片缓存组件,它可以最大性能地在Android设备上读取.解码.显示图片和视频.Glide可以将远程的图片.视频.动画图片等缓存在设备本地,便于提高用户浏览图片的流畅体验. Glide最核心的功能就是提高滚动图片列表的性能,并且Glide还能满足对远程图片的读取.改变尺寸以及展示的性能要求. Glide使用方法 最简单的示例代码如下: // For a simple view: @Override public void onCreate(Bundl