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

本人菜鳥一個,有什麼問題希望大家指出評論,大神勿噴,希望大家一起學習進步!

發佈了132 篇原創文章 · 獲贊 174 · 訪問量 53萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章