Android 利用kenBurnsView实现启动页

来源:互联网 发布:mac怎么播放wmv 编辑:程序博客网 时间:2024/06/16 21:55

现在大多数app的启动页都是播放一个git图片或者是一段视频,这里我们实现一下,也是很简单的,kenBurnsView是一个实现Ken Burns effect图片展示效果的效果android控件,Ken Burns effect是一种图片在切换之前,会缓慢在页面移动或者放大缩小,然后再慢慢切换过去。这样的效果使得每一张静止图片都有动态的效果感觉。类似的效果在电子相册,或者在电影视频对静态图片的处理中经常可见。

https://github.com/flavioarfaria/KenBurnsView

首先添加依赖:

compile 'com.flaviofaria:kenburnsview:1.0.7'

效果图:
这里写图片描述

1.在xml中使用:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.administrator.kenburnsviewdemo.MainActivity">    <com.flaviofaria.kenburnsview.KenBurnsView        android:id="@+id/kenBurnsView"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:src="@drawable/img1" /></RelativeLayout>

2.在MainActivity中:

public class MainActivity extends AppCompatActivity {    private KenBurnsView kenBurnsView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        kenBurnsView = (KenBurnsView) findViewById(R.id.kenBurnsView);        kenBurnsView.setTransitionListener(new KenBurnsView.TransitionListener() {            @Override            public void onTransitionStart(Transition transition) {                //动画开始后执行            }            @Override            public void onTransitionEnd(Transition transition) {                //动画结束后,多用于跳转到主页面              //  startActivity(new Intent(LaunchActivity.this,MainActivity.class));//                finish();            }        });    }    @Override    protected void onResume() {        super.onResume();        //暂停动画。        kenBurnsView.resume();    }    @Override    protected void onPause() {        super.onPause();        //恢复动画        kenBurnsView.pause();    }}

3.你可以用kbv.pause() 和 kbv.resume();暂停和恢复动画。
4.你可以设置动画的插值和过度时间:

RandomTransitionGenerator generator = new RandomTransitionGenerator(duration, interpolator);kenBurnsView .setTransitionGenerator(generator);

这样就ok了,是不是很简单呢!
demo地址:

http://download.csdn.net/detail/afanbaby/9877676

本人菜鸟一个,有什么问题希望大家指出评论,大神勿喷,希望大家一起学习进步!

原创粉丝点击