欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Android 新手引导蒙层效果实现代码示例

时间:2021-01-08 12:18:30|栏目:Android代码|点击:

先上效果图:

这个效果一开始我是想直接让UI给个切图,后来发现这样不行,适配很差,达不到效果。所以就自己动手写代码,其实思路也很简单:在这个布局的父布局上面再手动添加一个view(通常LinearLayout比较方便),然后把这个linearlayout的背景设置成#88000000,之后就是给这个linearlayout动态增加子view,初步效果就能达到。

下面直接上代码:

public void showGuideView() {

  View view = getWindow().getDecorView().findViewById(R.id.activity_main);
  if (view == null) return;

  ViewParent viewParent = view.getParent();
  if (viewParent instanceof FrameLayout) {
    final FrameLayout frameParent = (FrameLayout) viewParent;//整个父布局

    final LinearLayout linearLayout = new LinearLayout(this);//新建一个LinearLayout
    linearLayout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    linearLayout.setOrientation(LinearLayout.VERTICAL);
    linearLayout.setBackgroundResource(#88000000);//背景设置灰色透明
    linearLayout.setGravity(Gravity.CENTER_HORIZONTAL);
    linearLayout.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
       frameParent.removeView(linearLayout);
      }
    });

    Rect rect = new Rect();
    Point point = new Point();
    nearby.getGlobalVisibleRect(rect, point);
    //获得nearby这个控件的宽高以及XY坐标 nearby这个控件对应就是需要高亮显示的地方

    ImageView topGuideview = new ImageView(this);
    topGuideview.setLayoutParams(new ViewGroup.LayoutParams(rect.width(), rect.height())); 
     topGuideview.setBackgroundResource(R.drawable.iv_topguide);

     Rect rt = new Rect();
     getWindow().getDecorView().getWindowVisibleDisplayFrame(rt);
    topGuideview.setY(point.y - rt.top);//rt.top是手机状态栏的高度
    ImageView bottomGuideview = new ImageView(this);
    bottomGuideview.setLayoutParams(new ViewGroup.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
    bottomGuideview.setBackgroundResource(R.drawable.iv_bottomguide);
    bottomGuideview.setY(point.y + topGuideview.getHeight());

    linearLayout.addView(topGuideview);
    linearLayout.addView(bottomGuideview);
    frameParent.addView(linearLayout);
  }
}

上一篇:Android Studio实现格式化XML代码顺序

栏    目:Android代码

下一篇:Kotlin如何使用类似C#的yield功能详解

本文标题:Android 新手引导蒙层效果实现代码示例

本文地址:http://www.codeinn.net/misctech/42100.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有