现在大多数app的启动页都是播放一个git图片或者是一段视频,这里我们实现一下,也是很简单的,kenBurnsView是一个实现Ken Burns effect图片展示效果的效果android控件,Ken Burns effect是一种图片在切换之前,会缓慢在页面移动或者放大缩小,然后再慢慢切换过去。这样的效果使得每一张静止图片都有动态的效果感觉。类似的效果在电子相册,或者在电影视频对静态图片的处理中经常可见。
首先添加依赖:
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地址:
本人菜鸟一个,有什么问题希望大家指出评论,大神勿喷,希望大家一起学习进步!