效果图 - 文字没有调偏移量,可自行调整位置偏移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
}