[Android]新功能引导高亮显示遮罩层View

@Author GQ 2016085日   实际上是一个Activity遮盖在目标View的上方,可以设置遮罩层文字图片等,亲测好使。

原文github地址

效果图

[Android]新功能引导高亮显示遮罩层View_第1张图片

  • Android新功能引导高亮显示遮罩层View
    • 效果图
    • AndroidStudio使用
    • 使用

1. AndroidStudio使用

dependencies {    compile 'com.guoqi.widget:highlightview:1.0'}

2. 使用

//在fab上使用线程加载fab.post(new Runnable() {            @Override            public void run() {                showHighLight(fab);            }        });/** * 显示高亮引导 */private void showHighLight(final View v) {  final GuideBuilder builder = new GuideBuilder();  builder.    //设置要高亮显示的View    setTargetView(v)    //设置高亮区域圆角    .setHighTargetCorner(10)    //设置遮罩透明度(0-255)    .setAlpha(150)    //设置遮罩形状 默认矩形Component.ROUNDRECT,可选圆形    .setHighTargetGraphStyle(Component.ROUNDRECT)    //是否覆盖目标View,默认flase    .setOverlayTarget(false)    //设置进出动画    .setEnterAnimationId(android.R.anim.fade_in)    .setExitAnimationId(android.R.anim.fade_out)    //外部是否可点击取消遮罩,true为不可取消    .setOutsideTouchable(false);  //设置遮罩监听  builder.setOnVisibilityChangedListener(new      GuideBuilder.OnVisibilityChangedListener() {            @Override            public void onShown() {                //显示遮罩时触发            }            @Override            public void onDismiss() {                //显示下一个遮罩                showHightLight2(iv);            }        });        //添加遮罩旁边需要显示的视图,比如 "新功能在这里~"        builder.addComponent(new MyComponent());        Guide guide = builder.createGuide();        //检测定位非0        guide.setShouldCheckLocInWindow(false);        //显示        guide.show(this);    }
  • MyComponent.java
//自定义遮罩层文字图片public class MyComponent 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("点击这里");        textView.setTextColor(Color.WHITE);        textView.setTextSize(20);        ImageView imageView = new ImageView(inflater.getContext());        imageView.setImageResource(R.drawable.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 0;    }    @Override    public int getYOffset() {        return 30;    }}

更多相关文章

  1. Android异步加载图片
  2. Android对图片局部扩大的实现
  3. Android的AnimationSet动画实现图片的轮播,移动和切换可以自定义
  4. Android 软件运行前加载图片
  5. android保存图片到sdcard后,在图片浏览器不能马上显示出来

随机推荐

  1. 【iOS-cocos2d-X 游戏开发之十六】配置你
  2. 侧滑回退的layout(类似IOS侧滑回退到上一
  3. 在三星 Galaxy Note 手机上作画 [视频]
  4. android apk包反编译、破解心得
  5. 巧用apache httpcore-nio实现android推送
  6. Galaxy Nexus 加个气压计来干什么呢?Googl
  7. Android(安卓)支持表情功能
  8. Android(安卓)BLE与终端通信(二)——Androi
  9. Android(安卓)使用AsyncTask 后监听异步
  10. Android用户界面之notifaction(状态栏通知