Android开发怎么实现在TextView前面加标签
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要介绍"Android开发怎么实现在TextView前面加标签",在日常操作中,相信很多人在Android开发怎么实现在TextView前面加标签问题上存在疑惑,小编查阅了各式资料,整理出简
千家信息网最后更新 2025年11月09日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安全错误
数据库的锁怎样保障安全
工业软件开发技术就业方向
服务器数据库统计表
分期乐逾期上报金融数据库严重吗
后端怎么控制数据库
黄金计划软件开发工作室
达达软件开发工程师
edb数据库无法打开
银行软件开发和运维
网络安全 专科
中达兴盛互联网科技有限公司
光接入网络技术的背景
网络安全设备巡检总结
打开web服务器
河南钟盼网络技术有限公司
世界网络安全实力
网络安全的意见建议
关于网络技术考试题
哪些单位招收网络安全员
国外大型软件开发方法
网络安全性建设
应用软件开发简单吗
虚拟货币网络安全
中国全文图书数据库
庆阳软件开发公司
梦幻最古老的服务器
服务器 加密卡
美国服务器主机交流
天津提供ipfs服务器云主机
数据库安全级别c2级
网站数据库探测