Android GuideView實(shí)現(xiàn)首次登陸引導(dǎo)
簡(jiǎn)介:最最輕量級(jí)的新手引導(dǎo)庫,能夠快速為任何一個(gè) View 創(chuàng)建一個(gè)遮罩層,支持單個(gè)頁面,多個(gè)引導(dǎo)提示,支持為高亮區(qū)域設(shè)置不同的圖形,支持引導(dǎo)動(dòng)畫,方便擴(kuò)展
項(xiàng)目地址:binIoter/GuideView
GuideView
本系統(tǒng)能夠快速的為一個(gè) Activity 里的任何一個(gè) View 控件創(chuàng)建一個(gè)遮罩式的導(dǎo)航頁。
工作原理
首先它需要一個(gè)目標(biāo) View 或者它的 id,我們通過 findViewById 來得到這個(gè) View,計(jì)算它在屏幕上的區(qū)域 targetRect,通過這個(gè)區(qū)域,開始繪制一個(gè)覆蓋整個(gè) Activity 的遮罩,可以定義遮罩的顏色和透明度,然而目標(biāo) View 被繪制成透明從而實(shí)現(xiàn)高亮的效果。接下來是在相對(duì)于這個(gè) targetRect 的區(qū)域繪制一些圖片或者文字。我們把這樣一張圖片或者文字抽象成一個(gè) Component 接口,設(shè)置文字或者圖片,所有的圖片文字都是相對(duì)于 targetRect 來定義的??梢栽O(shè)定額外的 x,y 偏移量,可以對(duì)遮罩系統(tǒng)設(shè)置可見狀態(tài)的發(fā)生變化時(shí)的監(jiān)聽回調(diào),可以對(duì)遮罩系統(tǒng)設(shè)置開始和結(jié)束時(shí)的動(dòng)畫效,另外,我們可以不對(duì)整個(gè) Activity 覆蓋遮罩,而是對(duì)某一個(gè) View 覆蓋遮罩。
注意:具體用法參見 demo,內(nèi)附詳細(xì)注釋





usage
public class SimpleComponent implements Component {
@Override
public View getView(LayoutInflater inflater) {
LinearLayout ll = new LinearLayout(inflater.getContext());
LinearLayout.LayoutParams param =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
ll.setOrientation(LinearLayout.VERTICAL);
ll.setLayoutParams(param);
TextView textView = new TextView(inflater.getContext());
textView.setText(R.string.welcome);
textView.setTextColor(inflater.getContext().getResources().getColor(R.color.color_white));
textView.setTextSize(20);
ImageView imageView = new ImageView(inflater.getContext());
imageView.setImageResource(R.mipmap.arrow);
ll.removeAllViews();
ll.addView(textView);
ll.addView(imageView);
ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "引導(dǎo)層被點(diǎn)擊了", Toast.LENGTH_SHORT).show();
}
});
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 0;
}
}
public void showGuideView() {
final GuideBuilder builder1 = new GuideBuilder();
builder1.setTargetView(button1)
.setAlpha(150)
.setOverlayTarget(true)//設(shè)置目標(biāo)區(qū)域是否高亮顯示
.setOutsideTouchable(false);
builder1.setOnVisibilityChangedListener(new GuideBuilder.OnVisibilityChangedListener() {
@Override
public void onShown() {
// Toast.makeText(MutiGuideViewActivity.this, "show", Toast.LENGTH_SHORT).show();
}
@Override
public void onDismiss() {
button2.post(new Runnable() {
@Override
public void run() {
showGuideView2();
}
});
// Toast.makeText(MutiGuideViewActivity.this, "dismiss", Toast.LENGTH_SHORT).show();
}
});
builder1.addComponent(new SimpleComponent());
Guide guide = builder1.createGuide();
guide.setShouldCheckLocInWindow(false);
guide.show(MutiGuideViewActivity.this);
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android自定義Dialog內(nèi)部透明、外部遮罩效果
- Android實(shí)現(xiàn)遮罩層(蒙板)效果
- Android PopupWindow實(shí)現(xiàn)遮罩層效果
- Android使用popUpWindow帶遮罩層的彈出框
- Android之淘寶商品列表長按遮罩效果的實(shí)現(xiàn)
- 360瀏覽器文本框獲得焦點(diǎn)后被android軟鍵盤遮罩該怎么辦
- Android頁面中引導(dǎo)蒙層的使用方法詳解
- Android實(shí)現(xiàn)新手引導(dǎo)半透明蒙層效果
- Android自定義ViewGroup實(shí)現(xiàn)豎向引導(dǎo)界面
- 一分鐘實(shí)現(xiàn)Android遮罩引導(dǎo)視圖
相關(guān)文章
Android Studio使用USB真機(jī)調(diào)試詳解
這篇文章主要為大家詳細(xì)介紹了Android Studio使用USB真機(jī)調(diào)試的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Android 使用Glide加載網(wǎng)絡(luò)圖片等比例縮放的實(shí)現(xiàn)方法
這篇文章主要介紹了Android 使用Glide加載網(wǎng)絡(luò)圖片等比例縮放的實(shí)現(xiàn)方法,需要的朋友可以參考下2018-08-08
Android編程實(shí)現(xiàn)3D旋轉(zhuǎn)效果實(shí)例
這篇文章主要介紹了Android編程實(shí)現(xiàn)3D旋轉(zhuǎn)效果的方法,基于Android的Camera類實(shí)現(xiàn)坐標(biāo)變換達(dá)到圖片3D旋轉(zhuǎn)效果,需要的朋友可以參考下2016-01-01
Android使用AlertDialog實(shí)現(xiàn)的信息列表單選、多選對(duì)話框功能
在使用AlertDialog實(shí)現(xiàn)單選和多選對(duì)話框時(shí),分別設(shè)置setSingleChoiceItems()和setMultiChoiceItems()函數(shù)。具體實(shí)現(xiàn)代碼大家參考下本文吧2017-03-03
Android中 TeaScreenPopupWindow多類型篩選彈框功能的實(shí)例代碼
這篇文章主要介紹了Android TeaScreenPopupWindow多類型篩選彈框功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-06-06
Android MenuItem 自定義長按事件的實(shí)現(xiàn)
這篇文章主要介紹了Android MenuItem 自定義長按事件的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08
Android編程中常用適配器及自定義適配器用法實(shí)例分析
這篇文章主要介紹了Android編程中常用適配器及自定義適配器用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android中適配器的概念、功能及自定義適配器的相關(guān)使用技巧,需要的朋友可以參考下2015-11-11

