1、布局文件

<RelativeLayout 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="com.example.helloword.FlipperActivity" > <ViewFlipper
android:id="@+id/flipper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></ViewFlipper> </RelativeLayout>

2、drawable 图片

3、Activity:

package com.example.helloword;

import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.ViewFlipper; public class FlipperActivity extends Activity implements View.OnClickListener, GestureDetector.OnGestureListener{ final int distance = 50; private Animation[] animations = new Animation[4]; private int[] images = new int[]{
R.drawable.img0,R.drawable.img1,R.drawable.img2,R.drawable.img3,
R.drawable.img4
}; private ViewFlipper flipper ; private GestureDetector detector; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_flipper); detector = new GestureDetector(FlipperActivity.this,this);
flipper = findViewById(R.id.flipper); for (int i = 0; i < images.length; i++) {
ImageView img = new ImageView(this);
img.setImageResource(images[i]);
flipper.addView(img);
} animations[0] = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_bottom);
animations[1] = AnimationUtils.loadAnimation(this, R.anim.abc_slide_out_bottom);
animations[2] = AnimationUtils.loadAnimation(this, R.anim.abc_slide_in_top);
animations[3] = AnimationUtils.loadAnimation(this, R.anim.abc_slide_out_bottom);
} @Override
public void onPointerCaptureChanged(boolean hasCapture) {
// TODO Auto-generated method stub } @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub } @Override
public boolean onDown(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
} @Override
public boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
if(arg0.getY()-arg1.getY()>distance){
flipper.setInAnimation(animations[2]);
flipper.setOutAnimation(animations[1]);
flipper.showPrevious();
return true;
}else if(arg1.getY()-arg0.getY()>distance){
flipper.setInAnimation(animations[0]);
flipper.setOutAnimation(animations[3]);
flipper.showNext();
return true;
} return false;
} @Override
public void onLongPress(MotionEvent arg0) {
// TODO Auto-generated method stub } @Override
public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
// TODO Auto-generated method stub
return false;
} @Override
public void onShowPress(MotionEvent arg0) {
// TODO Auto-generated method stub } @Override
public boolean onSingleTapUp(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
} @Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
return detector.onTouchEvent(event);
} }

android ViewFlipper(翻转视图) 使用的更多相关文章

  1. Android零基础入门第56节:翻转视图ViewFlipper打造引导页和轮播图

    原文:Android零基础入门第56节:翻转视图ViewFlipper打造引导页和轮播图 前面两期学习了 ViewAnimator及其子类ViewSwitcher的使用,以及ViewSwitcher的 ...

  2. android获取根视图

    android获取根视图 activity.getWindow().getDecorView()

  3. 【Android】android镜像翻转

    Android镜像翻转指的是将屏幕进行水平的翻转,达到所有内容显示都会反向的效果,就像是在镜子中看到的界面一样.这种应用的使用场景相对比较受限,主要用在一些需要使用Android手机界面进行镜面投影的 ...

  4. ANDROID自己定义视图——onLayout源代码 流程 思路具体解释

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 简单介绍: 在自己定义view的时候.事实上非常easy.仅仅须要知道3步骤: 1.測量- ...

  5. Android技术——切换视图(两)随着ViewPage达到Tab幻灯片浏览

    Android技术--切换视图(一)~(四)在资源项目:https://github.com/YongYuIT/MeiNv_Liulanqi 一.早期android(android.support.v ...

  6. Android ViewFlipper增添ScrollView后不能滑动了

    Android ViewFlipper添加ScrollView后不能滑动了在Activity中添加ScrollView实现滚动activity的效果后,activity的滑动效果却无法生效了,原因是因 ...

  7. ViewFlipper(翻转视图)的使用

    android developers java.lang.Object --android.view.View ----android.view.ViewGroup ------android.wid ...

  8. Android 常用布局视图

    常用包 http://square.github.io/ EventBus Scroller 滚动 拖拽 # android.support.design.widget.CollapsingToolb ...

  9. Android ViewFlipper的使用分析

    [ViewFlipper]——基础 1.ViewPager 和ViewFliping的区别: 最显著的区别就是ViewPager在滑动的时候内部的View默认就能够跟随手指滑动,而 ViewFlipi ...

随机推荐

  1. 使用Faker来随机生成接近真实数据的数据

    在很多场景我们需要造一些假数据或者mock数据,如果我们写死类似[XXXX]类似的无意义的其实不是很优雅,Faker能提供常用的一些名词的随机数据. 1.引入POM: <dependency&g ...

  2. Spring Web Flux 相关概念

    Reactive Streams.Reactor 和 Web Flux 上面介绍了反应式编程的一些概念,以及 Reactor 和 Web Flux.可能读者看到这里有些乱.这里介绍一下三者的关系.其实 ...

  3. postgre with递归查询组织路径

    with递归查询组织路径 SELECT r.id, (array_to_string( array( select name from ( with recursive rec as( select ...

  4. redis报错OOM command not allowed when used memory > 'maxmemory'

    登录到redis上查询 ./redis-cli -h IP -p port -a passwd redis>info memory 查询,内存已耗尽 查询配置文件,发现之前配置最大内存的策略设置 ...

  5. 【SpringBoot】SpringBoot 国际化(七)

    本周介绍SpringBoot项目的国际化是如何处理的,阅读本章前请阅读[SpringBoot]SpringBoot与Thymeleaf模版(六)的相关内容 国际化原理 1.在Spring中有国际化Lo ...

  6. 为什么0x00400000是可执行文件的默认基址?EXE base address start with 400000H,Why is 0x00400000 the default base address for an executable?

    DLL的默认基址是0x10000000,但EXE的默认基址是0x00400000.为什么EXE特别值?4 兆字节有什么特别之处它与x86上单页目录条目映射的地址空间量和1987年的设计决策有关.对EX ...

  7. 推荐一款好用的免费FTP客户端Filezilla

    官网地址:https://filezilla-project.org/

  8. Python窗体操作函数

    实现了一个window下对窗体操作的类,实现的功能如:移动窗体.获取窗体位置和大小.截取窗体图片.坐标转换等. 直接上代码: # coding=utf-8 import win32con import ...

  9. AIOps基本概念以及能力分级

    AIOps 自从 Gartner 于2016年提出至今已有一段时间,虽然在顶级互联网及电信企业,已有较多落地,但至今仍无基于生产实践的理论体系及实施指南. 高效运维社区和云计算开源产业联盟(OSCAR ...

  10. 常见GC算法,CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the world的,CMS会不会产生碎片,G1的优势。

    常见GC算法 在C/C++中是由程序员自己去申请.管理和释放内存的,因此没有GC的概念.而在Java中,专门有一个用于垃圾回收的后台线程来进行监控.扫描,自动将一些无用的内存进行释放.下面介绍几种常见 ...