學習|Android利用Appintro快速製作啟動介面(附源碼)
- 2020 年 1 月 2 日
- 筆記
學更好的別人,
做更好的自己。
——《微卡智享》

本文長度為3418字,預計閱讀8分鐘
Appintro啟動介面
每當我們程式更新時,一般在第一次進入程式時會有個快速啟動介面,用於介紹程式最新的更新東西,及一些簡單的宣傳,單獨設置View進行播放每次換新就感覺很麻煩,在Android中Appintro這個開源庫可以快速並簡單的實現我們想要的這個效果。

實現效果

Appintro使用核心方法

微卡智享
添加依賴
在程式的build.gradle中加入Appintro的依賴項
allprojects { repositories { maven { url 'https://jitpack.io' } } } dependencies { implementation 'com.github.AppIntro:AppIntro:5.1.0' }

Activity中注意事項
我們做啟動畫需要新建一個Activity並繼承自Appintro
註:這裡我們要把setContentView(R.layout.activity_intro)屏蔽

添加啟動頁
添加啟動頁的核心程式碼是addSlide
public void addSlide(@NonNull Fragment fragment) { if (isRtl()) fragments.add(0, fragment); else fragments.add(fragment); if (isWizardMode) { setOffScreenPageLimit(fragments.size()); } mPagerAdapter.notifyDataSetChanged(); }
從上面的源碼中我們可以看到,addSlide中我們要添加的就是一個Fragment,要生成Fragment有兩種方法:
- 使用Appintro自己的SliderPage
- 使用自定義布局的Fragment
使用Appintro自已的SliderPage
這個相對來說非常簡單,創建SliderPage後,設置標題,說明,圖片來源和背景色就可以,樣式是固定的。
val sliderPage = SliderPage() //設置標題 sliderPage.title = "標題一" //設置說明 sliderPage.description = "第一個測試說明" //設置圖片來源 sliderPage.imageDrawable = R.drawable.person //設置背景顏色 sliderPage.bgColor = Color.TRANSPARENT addSlide(AppIntroFragment.newInstance(sliderPage))
樣式如下

使用自定義布局的Fragment
自定義布局的Fragment,首先要自己建一個繼承自Fragment的類
package dem.vac.appintrodemo import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment /** * 作者:Vaccae * 創建時間:2019-12-19 14:44 * 功能模組說明: */ class SliderFragment : Fragment() { companion object { private val ARG_LAYOUT_ID = "layoutId" private var layoutId = 0 fun newInstance(layoutid: Int): SliderFragment { val slider = SliderFragment() val args = Bundle() args.putInt(ARG_LAYOUT_ID, layoutid) slider.arguments = args return slider } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) arguments ?: return if (arguments!!.containsKey(ARG_LAYOUT_ID)) { layoutId = arguments!!.getInt(ARG_LAYOUT_ID) } } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // return super.onCreateView(inflater, container, savedInstanceState) return inflater.inflate(layoutId, container, false) } }
然後自己設置layout的布局文件,再通過一行程式碼添加即可
//添加自定義的Fragment addSlide(SliderFragment.newInstance(R.layout.activity_intro))
樣式如下

設置分割線顏色
//設置分割線顏色 setSeparatorColor(Color.WHITE)
設置切換頁面時的動畫效果
//動畫效果 setFadeAnimation() setZoomAnimation() setFlowAnimation() setSlideOverAnimation() setDepthAnimation()
上面的幾種動畫效果,可以根據自己的喜好定義,具體自己測試下就看出來了,個人還是比較喜歡setFlowAnimation
Appintro重寫事件
繼承的Appintro的類裡面可以重寫點擊跳過,完成及頁面切換時觸發事件
//當執行跳過動作時觸發 override fun onSkipPressed(currentFragment: Fragment?) { super.onSkipPressed(currentFragment) Toast.makeText(this, "跳過", Toast.LENGTH_SHORT).show() finish() } //當執行完成動作時觸發 override fun onDonePressed(currentFragment: Fragment?) { super.onDonePressed(currentFragment) Toast.makeText(this, "完成", Toast.LENGTH_SHORT).show() finish() } //當執行頁面切換時觸發 override fun onSlideChanged(oldFragment: Fragment?, newFragment: Fragment?) { super.onSlideChanged(oldFragment, newFragment) // Toast.makeText(this, "頁面跳轉", // Toast.LENGTH_SHORT).show() }
判斷是否第一次啟動
var isfirst = SpHelper.getBoolean(this, title, true) if (isfirst) { val intent = Intent(this, IntroActivity::class.java) startActivity(intent) SpHelper.putBoolean(this, title, false) }
上面的SpHelper這個類在文章《學習|Android中SharedPreferences輕量數據存儲》中有寫,可以從那篇中參考,這樣我們的一個快速啟動的頁面就完成了。
源碼地址
https://github.com/Vaccae/AppintroDemo.git
完

掃描二維碼
獲取更多精彩
微卡智享

「 往期文章 」
學習|Android中SharedPreferences輕量數據存儲