Android开发怎么实现在TextView前面加标签
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"Android开发怎么实现在TextView前面加标签",在日常操作中,相信很多人在Android开发怎么实现在TextView前面加标签问题上存在疑惑,小编查阅了各式资料,整理出简
千家信息网最后更新 2026年11月02日Android开发怎么实现在TextView前面加标签
这篇文章主要介绍"Android开发怎么实现在TextView前面加标签",在日常操作中,相信很多人在Android开发怎么实现在TextView前面加标签问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Android开发怎么实现在TextView前面加标签"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
效果
代码实现: 自定义TextView
public class TagTextView extends AppCompatTextView { private View view;//标签布局的最外层布局 private Context mContext; private TextView tv_tag; private StringBuffer content_buffer; //必须重写所有的构造器,否则可能会出现无法inflate布局的错误! public TagTextView(Context context) { super(context); mContext = context; } public TagTextView(Context context, AttributeSet attrs) { super(context, attrs); mContext = context; } public TagTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mContext = context; } public void setContentAndTag(String content, List tags) { content_buffer = new StringBuffer(); for (String item : tags) {//将每个tag的内容添加到content后边,之后将用drawable替代这些tag所占的位置 content_buffer.append(item); } content_buffer.append(content); SpannableString spannableString = new SpannableString(content_buffer); for (int i = 0; i < tags.size(); i++) { String item = tags.get(i); View view = LayoutInflater.from(mContext).inflate(R.layout.layout_texttab, null);//R.layout.tag是每个标签的布局 tv_tag = view.findViewById(R.id.tv_tag); tv_tag.setText(item); Bitmap bitmap = convertViewToBitmap(view); Drawable d = new BitmapDrawable(bitmap); d.setBounds(0, 0, tv_tag.getWidth(), tv_tag.getHeight());//缺少这句的话,不会报错,但是图片不回显示 ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BOTTOM);//图片将对齐底部边线 int startIndex; int endIndex; startIndex = getLastLength(tags, i ); endIndex = startIndex + item.length(); Log.e("tag", "the start is" + startIndex + "the end is" + endIndex); spannableString.setSpan(span, startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } setText(spannableString); setGravity(Gravity.CENTER_VERTICAL); } private static Bitmap convertViewToBitmap(View view) { view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); view.buildDrawingCache(); Bitmap bitmap = view.getDrawingCache(); return bitmap; } private int getLastLength(List list, int maxLength) { int length = 0; for (int i = 0; i < maxLength; i++) { length += list.get(i).length(); } return length; }} 自定义一个layout_texttab布局
使用
Listtags = new ArrayList<>(); tags.add("@用户"); tags.add("@程序猿"); tags.add("@产品经理"); textTab.setContentAndTag("改个需求", tags);
到此,关于"Android开发怎么实现在TextView前面加标签"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
标签
布局
开发
学习
图片
更多
帮助
实用
接下来
产品
代码
位置
内容
外层
底部
效果
文章
方法
理论
用户
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技园
南京欣网互联网络科技有限公司
互联网佳科技有限公司
科技互联网产品
互联网和科技创新
重庆互联网络科技
以房互联网科技
互联网科技排名
朗涯互联网科技
深圳齐家互联网科技
互联网 视角下的科技创新
成都仁贤领冠互联网科技有限公司
燊美集互联网科技有限公司
中国互联网公司排名锤子科技
长沙茂晟互联网科技有限公司
互联网时代的科技公司
广州智享互联网科技
科技和互联网行业的特点
玉溪新华互联网科技怎么选
互联网领先科技成果宣传视频
猪兼强互联网科技
互联网科技小贷
互联网科技公司电话
远拓互联网科技
随着互联网科技发展
移动互联网科技公司
领航科技大厦互联网公司
互联网科技机房
互联网公司属于科技吗
第三届互联网大会安防黑科技