新手引導是指:用戶第一次使用一個新下載的APP時竭业,使用蒙層的技術+文字或圖片來提示用戶如何操作 APP,或介紹界面各個按鈕的用處及舍。為的就是引導用戶熟悉APP未辆。
首先介紹一下市面上比較好用的開源的三方引導層:
1.NewbieGuide(國內(nèi)開發(fā)者開發(fā))
Android 快速實現(xiàn)新手引導層的庫,通過簡潔鏈式調(diào)用锯玛,一行代碼實現(xiàn)引導層的顯示咐柜。
github地址 https://github.com/huburt-Hu/NewbieGuide 當前star數(shù)2.6k
image.png
2.Highlight(國內(nèi)開發(fā)者開發(fā))
一個用于app指向性功能高亮的庫
github地址 https://github.com/hongyangAndroid/Highlight 當前star數(shù)3k
image.png
3.GuideView(國內(nèi)開發(fā)者開發(fā))
最最輕量級的新手引導庫兼蜈,能夠快速為任何一個View創(chuàng)建一個遮罩層,支持單個頁面拙友,多個引導提示为狸,支持為高亮區(qū)域設置不同的圖形,支持引導動畫遗契,方便擴展,良好支持fragment
image.png
4.Spotlight
Android Library that lights items for tutorials or walk-throughs etc…
github地址 https://github.com/TakuSemba/Spotlight 當前star數(shù)2.6k
image.png
經(jīng)過對比后我選擇了NewbieGuide辐棒,它的優(yōu)勢在于使用極其簡單,單頁面添加多個引導層只需配置不同xml文件即可牍蜂,另外蒙層布局的位置是自己來控制的漾根,這會避免和其他三方的屏幕適配方案沖突,從而產(chǎn)生位置偏移鲫竞。
下面來介紹具體使用方式
1.在 app
的 build.gradle
文件中添加
//新手引導
implementation 'com.github.huburt-Hu:NewbieGuide:v2.4.0'
2.
/**
* 新手引導層 只有第一次使用 APP 才顯示
*/
public void showGuide() {
//設置需要高亮的布局
ImageView drawerIv, mindIv, chapterIv, home_open_menuIv, searchIv, sendIv;
drawerIv = findViewById(R.id.drawerIv);
mindIv = findViewById(R.id.mindIv);
chapterIv = findViewById(R.id.chapterIv);
home_open_menuIv = findViewById(R.id.home_open_menuIv);
searchIv = findViewById(R.id.searchIv);
sendIv = findViewById(R.id.sendIv);
//為沒個布局配置需要顯示的信息 這里自定義xml即可
NewbieGuide.with(HomeActivity.this)
.setLabel("guide1")
.setShowCounts(3)//控制次數(shù)
.alwaysShow(true)//總是顯示立叛,調(diào)試時可以打開
.addGuidePage(GuidePage.newInstance()
.addHighLight(drawerIv)
.setLayoutRes(R.layout.info_known))
.addGuidePage(GuidePage.newInstance()
.addHighLight(mindIv)
.setLayoutRes(R.layout.info_mind))
.addGuidePage(GuidePage.newInstance()
.addHighLight(chapterIv)
.setLayoutRes(R.layout.info_chapter))
.addGuidePage(GuidePage.newInstance()
.addHighLight(home_open_menuIv)
.setLayoutRes(R.layout.info_takephoto))
.addGuidePage(GuidePage.newInstance()
.addHighLight(searchIv)
.setLayoutRes(R.layout.info_search)).addGuidePage(GuidePage.newInstance()
.addHighLight(sendIv)
.setLayoutRes(R.layout.info_sendphoto))
.show();
}
就這么簡單新手引導層就完成啦~~