Android 利用kenBurnsView实现启动页

现在大多数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

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值