現在大多數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地址:
本人菜鳥一個,有什麼問題希望大家指出評論,大神勿噴,希望大家一起學習進步!