TextView用SpannableStringBuilder加全文以及不同点击事件
创始人
2025-05-29 18:31:05
textContent.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {@Overridepublic boolean onPreDraw() {//这个监听的回调是异步的,在监听完以后一定要把绘制监听移除,不然这个会一直回调,导致界面错乱textContent.getViewTreeObserver().removeOnPreDrawListener(this);//获取字行数int lineCount = textContent.getLineCount();//55是左右的marginint windowWidth = ScreenUtils.getScreenWidth()-55;int zNumber = Math.round(windowWidth/textContent.getTextSize());if(lineCount>3){SpannableStringBuilder builder = new SpannableStringBuilder();//减6是为了加上...跟全文String substring = spannableString.toString().substring(0, zNumber * 3 - 6);if(!TextUtils.isEmpty(huaTi)){builder.append(substring).append("...").append("全文").setSpan(clickableSpan, 0, huaTi.length()+1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);builder.setSpan(new ForegroundColorSpan(getContext().getResources().getColor(R.color.blue_shense)),0, huaTi.length()+2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);builder.setSpan(new ForegroundColorSpan(getContext().getResources().getColor(R.color.blue_shense)),builder.length()-5, builder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);builder.setSpan(clickableSpan2,huaTi.length()+1,builder.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textContent.setText(builder);}else {builder.append(substring).append("...").append("全文").setSpan(clickableSpan2, 0, builder.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);builder.setSpan(new ForegroundColorSpan(getContext().getResources().getColor(R.color.blue_shense)),builder.length()-5, builder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textContent.setText(builder);}}else{//原来的if(!TextUtils.isEmpty(huaTi)){spannableString.setSpan(new ForegroundColorSpan(getContext().getResources().getColor(R.color.blue_shense)),0, huaTi.length()+2, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);spannableString.setSpan(clickableSpan,0,huaTi.length()+1,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);}spannableString.setSpan(clickableSpan2,huaTi.length()+1,spannableString.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);textContent.setText(spannableString);}return true;}
});

相关内容

热门资讯

仲利国际:荣誉辉映的融资租赁发... 在融资租赁行业,有一家企业已专注耕耘二十年,凭借踏实的脚步赢得了各方的信任与尊重,它就是——仲利国际...
吉利汽车与极氪签合并协议,后者... 【文/观察者网 潘昱辰 编辑/高莘】7月15日,吉利控股集团宣布,旗下吉利汽车控股有限公司(以下简称...
券商中报“成绩单”集体报喜,国... 受益于上半年A股市场回暖、成交活跃度提升,多数上市券商业绩堪称亮眼。目前,A股已有30余家上市券商发...
原创 特... 自从特朗普挑起全球贸易战以来,中国不仅成为了第一个勇敢直面美国的国家,并因此赢得了世界各国的尊重。更...
高一数学练习册答案下(通用3... 高一数学练习册答案下 篇一近年来,随着高考的改革,高中数学的学习重点也发生了一些变化。为了帮助学生更...