作者简介 本文转载自bingoogolapple,分享了 Android 启动优化的常用方法,相信对大家有所帮助。
bingoogolapple 的博客地址
https://juejin.im/post/5d709d8c5188252501778297
功能介绍 效果图 效果图 使用说明 添加 Gradle 依赖 image.png bga-transformerstip 后面的「latestVersion」指的是左边这个 Download 徽章后面的「数字」,请自行替换。
1dependencies { 2 implementation 'cn.bingoogolapple:bga-transformerstip:latestVersion@aar' 3} 4
方式一:在 Java 代码中设置浮窗位置,在布局文件中设置浮窗背景、箭头位置 preview 1 new TransformersTip(anchorView, R.layout.layout_demo1_tip) { 2 @Override 3 protected void initView(View contentView) { 4 // 点击浮窗中自定按钮关闭浮窗 5 contentView.findViewById(R.id.tv_tip_close).setOnClickListener(new View.OnClickListener() { 6 @Override 7 public void onClick(View v) { 8 dismissTip(); 9 } 10 }); 11 } 12 } 13 .setTipGravity(TipGravity.TO_BOTTOM_CENTER) // 设置浮窗相对于锚点控件展示的位置 14 .setTipOffsetXDp(0) // 设置浮窗在 x 轴的偏移量 15 .setTipOffsetYDp(-6) // 设置浮窗在 y 轴的偏移量 16 17 .setBackgroundDimEnabled(true) // 设置是否允许浮窗的背景变暗 18 .setDismissOnTouchOutside(false) // 设置点击浮窗外部时是否自动关闭浮窗 19 20 .show(); // 显示浮窗
方式二:在 Java 代码中设置浮窗位置、浮窗背景、箭头位置 1 new TransformersTip(anchorView, R.layout.layout_demo2_tip) { 2 @Override 3 protected void initView(View contentView) { 4 // 点击浮窗中自定按钮关闭浮窗 5 contentView.findViewById(R.id.tv_tip_close).setOnClickListener(new View.OnClickListener() { 6 @Override 7 public void onClick(View v) { 8 dismissTip(); 9 } 10 }); 11 } 12 } 13 .setArrowGravity(ArrowGravity.TO_BOTTOM_CENTER) // 设置箭头相对于浮窗的位置 14 .setBgColor(Color.WHITE) // 设置背景色 15 .setShadowColor(Color.parseColor("#33000000")) // 设置阴影色 16 .setArrowHeightDp(6) // 设置箭头高度 17 .setRadiusDp(4) // 设置浮窗圆角半径 18 .setArrowOffsetXDp(0) // 设置箭头在 x 轴的偏移量 19 .setArrowOffsetYDp(0) // 设置箭头在 y 轴的偏移量 20 .setShadowSizeDp(6) // 设置阴影宽度 21 22 .setTipGravity(TipGravity.TO_TOP_CENTER) // 设置浮窗相对于锚点控件展示的位置 23 .setTipOffsetXDp(0) // 设置浮窗在 x 轴的偏移量 24 .setTipOffsetYDp(6) // 设置浮窗在 y 轴的偏移量 25 26 .setBackgroundDimEnabled(false) // 设置是否允许浮窗的背景变暗 27 .setDismissOnTouchOutside(false) // 设置点击浮窗外部时是否自动关闭浮窗 28 29 .show(); // 显示浮窗
方式三:对于仅有文字的浮窗,可以直接使用 SimpleTextTip,不用再写布局文件了 1new SimpleTextTip(anchorView) 2 .setTextContent("适用于只有文字的浮窗\n不写布局文件\n在 Java 代码中设置文本内容属性") // 设置浮窗文本内容 3 .setTextPaddingDp(12) // 设置文字与浮窗边框的间距 4 .setTextColor(Color.BLACK) // 设置文字颜色 5 .setTextSizeSp(14) // 设置文字大小 6 .setTextGravity(Gravity.CENTER) // 设置文字对其方式 7 .setLineSpacingExtraDp(4) // 设置文字行间距 8 9 .setArrowGravity(ArrowGravity.TO_BOTTOM_ALIGN_START) // 设置箭头相对于浮窗的位置 10 .setBgColor(Color.WHITE) // 设置背景色 11 .setShadowColor(Color.parseColor("#33000000")) // 设置阴影色 12 .setArrowHeightDp(6) // 设置箭头高度 13 .setRadiusDp(4) // 设置浮窗圆角半径 14 .setArrowOffsetXDp(0) // 设置箭头在 x 轴的偏移量 15 .setArrowOffsetYDp(0) // 设置箭头在 y 轴的偏移量 16 .setShadowSizeDp(6) // 设置阴影宽度 17 18 .setTipGravity(TipGravity.TO_TOP_ALIGN_START) // 设置浮窗相对于锚点控件展示的位置 19 .setTipOffsetXDp(0) // 设置浮窗在 x 轴的偏移量 20 .setTipOffsetYDp(6) // 设置浮窗在 y 轴的偏移量 21 22 .setBackgroundDimEnabled(false) // 设置是否允许浮窗的背景变暗 23 .setDismissOnTouchOutside(true) // 设置点击浮窗外部时是否自动关闭浮窗 24 25 .show(); // 显示浮窗 26
TipGravity 说明 ArrowGravity 说明 ArrowGravity说明 TransformersTipLinearLayout 和 TransformersTipRelativeLayout 自定义属性说明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 attr> 35declare-styleable> 36
GitHub 项目源码 https://github.com/bingoogolapple/BGATransformersTip-Android
题外话 Android 面试必备 - 知识图谱自定义 Behavior - 仿新浪微博发现页的实现自定义 behavior - 完美仿 QQ 浏览器首页,美团商家详情页Fragment全解析系列(一):那些年踩过的坑Fragment全解析系列(二):正确的使用姿势带你全面了解 Android 内存优化Android自定义控件进阶篇,自定义LayoutManager策略模式 — 孔明排兵布阵探索 Android 启动优化方法
扫一扫,欢迎关注我的微信公众号 stormjun94(徐公码字) , 目前是一名程序员,不仅分享 Android开发相关知识,同时还分享技术人成长历程,包括个人总结,职场经验,面试经验等,希望能让你少走一点弯路。