做APP的時候難免用到新手引導的效果。
先放一張效果的圖片吧。雖然醜了點,講究實用吧。
本人在開發的時候,使用了github這位同學的開源代碼,這裏推薦一下開源的github的地址:點擊打開鏈接
將github下載的導入自己的項目,然後gradle配置成功後,就可以使用了。
private void showGuideView() { GuideBuilder builder = new GuideBuilder(); builder.setTargetView(img_settest) .setAlpha(220)//設置透明度(0~255),值越小越透明 .setHighTargetGraphStyle(Component.ROUNDRECT)//設置遮罩形狀(圓形和方形,方形可設置圓角大小以及padding) .setHighTargetCorner(50) .setHighTargetPaddingBottom(10) .setHighTargetPaddingTop(-9) .setOverlayTarget(false)//設置目標區域高亮顯示 .setOutsideTouchable(false);//外部是否可點擊取消浮層,false表示可以取消 builder.setOnVisibilityChangedListener(new GuideBuilder.OnVisibilityChangedListener() { @Override public void onShown() { } @Override public void onDismiss() { show.post(new Runnable() { @Override public void run() { showGuideView2();//可以繼續添加顯示下一個控件蒙層 } }); } }); builder.addComponent(new MyComponent());//添加蒙層上需要顯示的圖片文字等效果 guide = builder.createGuide(); guide.setShouldCheckLocInWindow(true); guide.show(this); }
關鍵代碼就是這個樣子的,針對的是某一個控件的新手引導的使用。
還有一個關鍵的蒙版層的編輯以及位置的定義如下:
/** * Created by Administrator on 2017/1/17 0017. */ public class MyComponent implements Component { @Override public View getView(LayoutInflater inflater) { RelativeLayout ll = (RelativeLayout) inflater.inflate(R.layout.guide_settest, null); return ll; } @Override public int getAnchor() { return Component.ANCHOR_BOTTOM; } @Override public int getFitPosition() { return Component.FIT_START; } @Override public int getXOffset() { return 30; } @Override public int getYOffset() { return 40; } }
這個layout就是自己想要在蒙版上面展示的東西。自己試一試就知道最後的效果是什麼樣子了。
具體的就這些代碼,簡單方便,大家可以細細研究一下封裝好的內部的代碼,可能會更加有所收穫吧,也能更加按照自己的意願來對這個新手引導進行一定的自定義。