Android——新手指引 指定View高亮显示自定义控件

效果图 - 文字没有调偏移量,可自行调整位置偏移setHintTextOffsetXY(x, y)

调用方式 

uhv_user_hint.setHeightLightView(heightLightView) //设置高光显示的view
                .setHeightLightType(UserHintView.DrawHeightLightType.CUSTOM_ROUND_RECT) //设置高光类型为 自定义圆角
                .setRectRoundCustom(0, 0, 0, 0) //高光类型为自定义圆角时,四个角的round 单位dp
                .setHintBackgroundColor(Color.parseColor("#88000000")) //设置背景颜色
                //.setHeightLightType(UserHintView.DrawHeightLightType.ROUND_RECT) //设置高光类型为 圆角矩形
                //.setRectRound(5) //设置圆角矩形的角度 单位dp
                //.setHeightLightType(UserHintView.DrawHeightLightType.CIRCLE) //设置高光类型为 圆形
                //.setHeightLightType(UserHintView.DrawHeightLightType.RECT) //设置高光类型为 矩形
                .setHeightLightExpendSize(2) // 设置高光扩张大小 自定义圆角矩形无效 单位dp
                .setArrowBitmap(BitmapFactory.decodeResource(context.getResources(), res)) //设置箭头提示图片Bitmap
                .setArrowSize(150, 150) // 设置图片的大小 单位dp
                .setDrawHintDirection(UserHintView.DrawHintDirection.LEFT) // 设置提示图片的位置
                .setArrowOffsetXY(x, y) //设置图片 X Y轴的偏移量 单位dp
                .setHintText("测试测试测\n测试测试测") //设置提示文字
                .setHintTextColor(Color.WHITE) //设置提示文字的颜色
                .setHintTextSize(17) //设置提示文字的大小 单位dp
                .setHintTextOffsetXY(10, 10) //设置提示文字的 X Y轴的偏移量 单位dp
                .create();

如果是在AlertDialog中使用,取消AlertDialog半透明背景的方法

private void setStyle() {
        //去除半透明阴影
        WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
        layoutParams.dimAmount = 0.0f;
        getWindow().setAttributes(layoutParams);
    }

@Override
    public void show() {
        super.show();
        setStyle();
    }

注意:在onCreate中调用的话,需要监听view的可视化状态变更事件,在该监听中去使用

例:

view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                ...

                view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            }
        });

//在recyclerView 中的item
rv.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {

                //获取对应itemView
                View view = rv.getLayoutManager().findViewByPosition(0);
                //获取对应item中的某个view
                //view.findViewById(R.id.tv);

                rv.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            }
        });

枚举类型:

 //绘制高亮类型
    private DrawHeightLightType mHeightLightType = DrawHeightLightType.RECT;
    public enum DrawHeightLightType{
        RECT, CIRCLE, ROUND_RECT, CUSTOM_ROUND_RECT
    }

 /**
  * 设置要绘制的方向
  */
    private DrawHintDirection mDirection = DrawHintDirection.RIGHT;
    public enum DrawHintDirection{
        TOP, BOTTOM, LEFT, RIGHT
    }

自定义View 类文件


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值