Android-保举一个恣意遮罩式的引导页库(GuideView)

手机游戏开发者 2024-10-7 15:24:45 103 0 来自 中国
1.png 在一样平常的Android的开发中,我们要为一个Activity大概任何一个View创建一个遮罩式的的导航提示,这里分享一个快速实现的库——GuideView。
GuideView

快速的为一个Activity里的任何一个View控件创建一个遮罩式的导航页,而且可以再高亮区域绘制任何你想要的布局大概lottie动画等炫酷结果。开源库的大佬这个库实现原理:
起首它须要一个目标View大概它的id,我们通过findViewById来得到这个View,盘算它在屏幕上的区域targetRect,通过这个区域,开始绘制一个覆盖整个Activity的遮罩,可以定义遮罩的颜色和透明度,然而目标View被绘制成透明从而实现高亮的结果。接下来是在相对于这个targetRect的区域绘制一些图片大概笔墨。我们把如许一张图片大概笔墨抽象成一个Component接口,设置笔墨大概图片,全部的图片笔墨都是相对于targetRect来定义的。可以设定额外的x,y偏移量,可以对遮罩体系设置可见状态的发生变革时的监听回调,可以对遮罩体系设置开始和竣事时的动画效。
GuideView的引入

implementation 'com.binioter:guideview:1.0.0'截止我发博客,当前开源库的版本号是1.0.0。最新开源库版本请查看开源库的wiki
GuideView的利用

编写用于在高亮区域附近展示的component
public class SimpleComponent implements Component {            @Override public View getView(LayoutInflater inflater) {              LinearLayout ll = (LinearLayout) inflater.inflate(R.layout.layer_frends, null);         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_END;       }            @Override public int getXOffset() {         return 0;       }            @Override public int getYOffset() {         return 10;   } }展示引导蒙层,并监听蒙层展示、隐蔽变乱
   public void showGuideView() {      GuideBuilder builder = new GuideBuilder();      builder.setTargetView(header_imgbtn)              .setAlpha(150)              .setHighTargetCorner(20)              .setHighTargetPadding(10);      builder.setOnVisibilityChangedListener(new GuideBuilder.OnVisibilityChangedListener() {        @Override        public void onShown() {        }          @Override        public void onDismiss() {          showGuideView2();        }      });        builder.addComponent(new SimpleComponent());      guide = builder.createGuide();      guide.show(SimpleGuideViewActivity.this);
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-23 16:08, Processed in 0.208386 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表