打造自动播放动画,实现PPt模式的效果

 在项目中用到图片自动播放的效果,一开始想到的是定时播放用代码写出来,可是实际操作中,效果并不是很好,因此,自己写了一个demo,来运用android原生的控件,可以实现一样的效果,而且代码量不是很多,一个控件搞定,据此记录下来,以帮助些同样需求的朋友们!上图,无图无真相。


1.原理很简单,首先让我们先了解AdapterViewFlipper,  AdapterViewFlipper继承了AdapterViewAnimator。它也会显示Adapter提供的多个View组件,但它每次只能显示一个组件。可以通过showPrevious()和showNext()方法控制该组件显示上一个,下一个;通过startFlipping()和stopFlipping()方法控制自动播放和停止自动播放。
AdapterViewFipper继承AdapterViewAnimator

实例:自动播放的图片库
使用AdapterViewFlipper开发自动播放的图片库,该实例的界面上除了包含一个AdapterViewFilpper之外,还包含三个按钮,用于控制显示“上一个”、“下一个”和“自动播放”。
XML布局文件:
在xml中标定你要循环播放的间隔时间列如:

 android:flipInterval="2000"
具体代码为:

<?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" >
        <AdapterViewFlipper
            android:id="@+id/avFlipper"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:flipInterval="2000"
            />
<Button 
    android:id="@+id/pre"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="pre"
    android:text="pre"
    />
<Button 
    android:id="@+id/next"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="next"
    android:text="next"
    />
<Button 
    android:id="@+id/start"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="start"
    android:text="auto"
    />
</LinearLayout>
在activity中在引用,和其他控件一样

这其中我自己顶一个整形数组

int[]images	= new int[] { R.drawable.a, R.drawable.b, R.drawable.c, 
R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g };
adFlipperView = (AdapterViewFlipper) findViewById(R.id.avFlipper);
它和RecleView,listView一样,都要有具体的适配器,写一个适配器,这个大家都会写
<pre name="code" class="html">adFlipperView.setAdapter(adapter);
这样就可实现开头的那个效果。

 
源码<a target=_blank href="http://download.csdn.net/detail/we__we/9650425"" target="_blank">点击打开链接</a>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值