国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android GuideView實現首次登陸引導

2019-12-12 00:16:27
字體:
來源:轉載
供稿:網友

簡介:最最輕量級的新手引導庫,能夠快速為任何一個 View 創建一個遮罩層,支持單個頁面,多個引導提示,支持為高亮區域設置不同的圖形,支持引導動畫,方便擴展

項目地址:binIoter/GuideView

GuideView

本系統能夠快速的為一個 Activity 里的任何一個 View 控件創建一個遮罩式的導航頁。

工作原理

首先它需要一個目標 View 或者它的 id,我們通過 findViewById 來得到這個 View,計算它在屏幕上的區域 targetRect,通過這個區域,開始繪制一個覆蓋整個 Activity 的遮罩,可以定義遮罩的顏色和透明度,然而目標 View 被繪制成透明從而實現高亮的效果。接下來是在相對于這個 targetRect 的區域繪制一些圖片或者文字。我們把這樣一張圖片或者文字抽象成一個 Component 接口,設置文字或者圖片,所有的圖片文字都是相對于 targetRect 來定義的。可以設定額外的 x,y 偏移量,可以對遮罩系統設置可見狀態的發生變化時的監聽回調,可以對遮罩系統設置開始和結束時的動畫效,另外,我們可以不對整個 Activity 覆蓋遮罩,而是對某一個 View 覆蓋遮罩。

注意:具體用法參見 demo,內附詳細注釋

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(), "引導層被點擊了", 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)//設置目標區域是否高亮顯示       .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);}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临夏县| 枞阳县| 乐清市| 慈利县| 当阳市| 栾川县| 遵化市| 开阳县| 南宫市| 原阳县| 德化县| 呼伦贝尔市| 康保县| 雷山县| 旬阳县| 思茅市| 石河子市| 申扎县| 鄂伦春自治旗| 大庆市| 望城县| 遂平县| 广德县| 加查县| 江西省| 岚皋县| 江陵县| 富阳市| 阜新| 张北县| 澳门| 双鸭山市| 定安县| 定日县| 镇平县| 沁阳市| 高唐县| 兴仁县| 余江县| 韶关市| 宁陕县|