Android 带箭头的指引tipLayout实现示例代码

Android 带箭头的指引tipLayout实现示例代码,第1张

概述本文介绍了Android带箭头的指引tipLayout实现示例代码,分享给大家,具体如下:

本文介绍了AndroID 带箭头的指引tipLayout实现示例代码,分享给大家,具体如下:

如上是从UI接过来的设计图,要求三角形指示器需要动态对齐上面的文本,需要动态的实现对其三角形。

引用方式

compile 'com.xiaowei:TriangleTipLayout:1.0.0'

实现思路

准备一个三角形指引的图片即可。

先上代码

final TextPaint textPaint = mTextVIEw.getPaint();    final int textHeight = (int) (textPaint.descent() - textPaint.ascent());    mRect.set(0,DEFAulT_top_HEIGHT,getWIDth(),getHeight() + textHeight - DEFAulT_top_HEIGHT);    canvas.drawRect(mRect,mRectPaint);    final String text = mTextVIEw.getText().toString();    float left = 0;    if (mIsShowTriangle) {      if (mGravity == Gravity.left || mGravity == Gravity.START) {        LayoutParams layoutParams = (LayoutParams) mTarget.getLayoutParams();        left = mTarget.getleft() - layoutParams.rightmargin - layoutParams.leftmargin;      } else {        if (mTarget instanceof TextVIEw) {          VIEwParent vIEwParent = mTarget.getParent();          float textWIDth = textPaint.measureText(text);          if (vIEwParent instanceof linearLayout) {            final float wIDth = mTarget.getWIDth() / 2;            left = mTarget.getleft() + wIDth - (mBitmap.getWIDth() / 2);          } else if (vIEwParent instanceof relativeLayout) {            left = mTarget.getleft() + textWIDth / 2;          }        } else if (mTarget instanceof ImageVIEw) {          final float wIDth = mTarget.getWIDth();          left = mTarget.getleft() + (wIDth / 2) - (mBitmap.getWIDth() / 2);        }      }      canvas.drawBitmap(mBitmap,left,mBitmapPaint);    }  }

核心代码如上,其思路是先绘制一个矩形,预留出三角形所需要的高度,最后将其三行图片绘制出来。

配置指示器

mTipsLayout.setRectBackgroundcolor(color.parsecolor("#FFF8BE"));    mTipsLayout.setTextcolor(color.parsecolor("#FF9B33"));    mTipsLayout.setTriangleBitmap(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_triangle_arrow));    mTipsLayout.setTriangleGravity(Gravity.START);    mTipsLayout.bindVIEw(findVIEwByID(R.ID.text2));    mTipsLayout.setText("您今日收入已到达10W+,牛逼。保持努力");

注意:当调用setText之后会invalIDate()重新绘制;

实现效果如下

github: 源码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

您可能感兴趣的文章:如何设置Android studio 3.0显示光标返回上一次浏览位置的箭头图标Android自定义View实现箭头沿圆转动实例代码Android中ActionBar和ToolBar添加返回箭头的实例代码Android下拉列表选项框及指示箭头动画android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值Android自定义ViewGroup实现带箭头的圆角矩形菜单 总结

以上是内存溢出为你收集整理的Android 带箭头的指引tipLayout实现示例代码全部内容,希望文章能够帮你解决Android 带箭头的指引tipLayout实现示例代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1143052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存