首次啟動APP的新功能指引蒙板的使用
阿新 • • 發佈:2019-01-08
一般來說很多APP在第一次安裝啟動後都會有個新手引導的過程,不過每家採用的方式不同。最近做到這塊內容我就不再造輪子【其實是自己造不出來…】找到一個比較美觀的新手引導層框架。
TourGuide介紹
一個關於新手引導層的框架,介面較為美觀,自定義屬性也比較好。
TourGuide框架
使用
在build.gradle匯入框架
repositories {
mavenCentral()
maven(){
url "https://oss.sonatype.org/content/repositories/snapshots"
}
}
compile ('com.github.worker8:tourguide: [email protected]'){
transitive=true
}
老規矩缺哪兒補哪兒
至於多種效果我就不再一一展示,這裡只上我的Demo演示。
佈局檔案
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation ="vertical">
<Button
android:id="@+id/btnMain"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="BUTTON" />
</LinearLayout>
一個button放在左上角
MainActivity
public class MainActivity extends AppCompatActivity {
private Button btnMain;
private TourGuide tourGuide;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
btnMain = (Button) findViewById(R.id.btnMain);
tourGuide = TourGuide.init(this).with(TourGuide.Technique.HorizontalRight);
}
@Override
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
btnMain.post(new Runnable() {
@Override
public void run() {
initBtnGuide(tourGuide);//放在非同步執行緒確保能獲取到view的寬高
}
});
}
/**
* 初始化指導蒙層
*
* @param tourGuide TourGuide框架遮蓋層
*/
private void initBtnGuide(TourGuide tourGuide) {
tourGuide.setToolTip(
new ToolTip()
.setShadow(true)
.setBackgroundColor(getResources().getColor(R.color.DodgerBlue))
.setDescription("click here to open the menu")
.setGravity(Gravity.RIGHT)
);
tourGuide.setOverlay(new Overlay().setStyle(Overlay.Style.Circle).setHoleRadius(btnMain.getWidth() / 2 + 50));
tourGuide.playOn(btnMain);
}
}
使用起來很簡單一步到位,其中要注意的是我這裡是針對View獲取寬度並且留了一定的間隔。如果不知道為啥這麼寫的,自行百度獲取View的寬高。
其他
官方的依賴是有bug的,不能改變tip的文字顏色,如果對此屬性有需求的可以自行打包module自己修改,很簡單這裡不再贅述。
官方demo如果打不開的,就吧build.gradle下的最後一行刪掉同步即可。