您的位置:首页 > 移动开发 > Android开发

Android基础-ViewFlipper

2016-03-31 22:21 369 查看
这段时间因为项目所以导致中间这段时间没有推出新的内容下面就给大家介绍一个ViewFlipper吧 实际上就是一个自动轮播的例子

希望大家可以喜欢个人觉得效果还是不错的

-------------------------------------------------------------------------------

这里是我们主要的Activity的文件

* 多页面管理,子页面自动播放

*/

import android.app.Activity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.widget.ImageView;

import android.widget.ViewFlipper;

public class MainActivity extends Activity {

private ViewFlipper flipper;

private int[] resId = { R.drawable.al1, R.drawable.al2, R.drawable.al3,

R.drawable.al4,R.drawable.pp };

private float startX;// 横向,刚开始起止的坐标

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

flipper = (ViewFlipper) findViewById(R.id.flipper);

// 动态导入的方式为ViewFlipper加入子View

for (int i = 0; i < resId.length; i++) {

flipper.addView(getImageView(resId[i]));

}

// 添加动画效果 ,自动播放

flipper.setInAnimation(this, R.anim.left_in);

flipper.setOutAnimation(this, R.anim.left_out);

flipper.setFlipInterval(3000);// 时间

// 开始播放

flipper.startFlipping();

}

/**

* 支持手势滑动

*/

public boolean onTouchEvent(MotionEvent event) {

switch (event.getAction()) {

// 手指落下 ,点到屏幕上

case MotionEvent.ACTION_DOWN:

startX = event.getX();// 获取横向坐标的值

break;

// 手指滑动

case MotionEvent.ACTION_MOVE:

// 向右滑动,看前一页

if (event.getX() - startX > 100) {

flipper.setInAnimation(this, R.anim.left_in);

flipper.setOutAnimation(this, R.anim.left_out);

flipper.showPrevious();// 显示前一页

}

// 向左滑动,看后一页

if (startX - event.getX() > 100) {

flipper.setInAnimation(this, R.anim.right_in);

flipper.setOutAnimation(this, R.anim.right_out);

flipper.showNext();// 显示后一页

}

break;

// 手指离开

case MotionEvent.ACTION_UP:

break;

}

return super.onTouchEvent(event);

}

private ImageView getImageView(int resId) {

ImageView imageView = new ImageView(this);

// 不能全铺满

// imageView.setImageResource(resId);

imageView.setBackgroundResource(resId);// 显示铺面整个屏幕

return imageView;

}

}

========================================================================

布局文件:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<ViewFlipper

android:id="@+id/flipper"

android:layout_width="match_parent"

android:layout_height="200dp" >

</ViewFlipper>

</LinearLayout>

================================================================

我们第一好的动画文件

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate

android:duration="2000"

android:fromXDelta="-100%p"

android:toXDelta="0" />

<alpha

android:fromAlpha="0.5"

android:toAlpha="1"

android:duration="2000"

/>

</set>

======================================================

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate

android:duration="2000"

android:fromXDelta="0"

android:toXDelta="100%p" />

<alpha

android:duration="2000"

android:fromAlpha="0.5"

android:toAlpha="1" />

</set>

========================================================

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate

android:duration="2000"

android:fromXDelta="100%p"

android:toXDelta="0" />

<alpha

android:duration="2000"

android:fromAlpha="0.5"

android:toAlpha="1" />

</set>

=================================================

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<translate

android:duration="2000"

android:fromXDelta="0"

android:toXDelta="-100%p" />

<alpha

android:duration="2000"

android:fromAlpha="0.5"

android:toAlpha="1" />

</set>

======================================================

到这里就是所有的代码了下面是我们的一些总结

(1)静态导入

(2)动态导入:addView()

ViewFlipper常用方法:

setInAnimation:设置View进入屏幕时候使用的动画

setOutAnimation:设置View退出屏幕时候使用的动画

showNext:调用改函数来显示ViewFlipper里面的下一个View

showPrevious:调用该函数来显示ViewFlipper里面的上一个View

setFlipInterval:设置View之间切换的时间间隔

startFlipping:使用上面设置的时间间隔来开始切换所有的view,切换会循环进行

stopFlipping:停止View切换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: