Android中多行文本末尾添加图片排版问题的解决方法-创新互联

前言

成都创新互联公司是一家集网站建设,道外企业网站建设,道外品牌网站建设,网站定制,道外网站建设报价,网络营销,网络优化,道外网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

最近在项目中需要在某个多行英文文本末尾增加一个图片,尝试了很多方法,最后用了一个比较Tricky的方法解决了,当然这种方法不一定是最好最优的解决办法,记录一下。

问题

如果直接使用drawableRight或者drawableEnd来将图片放置到文本末尾,结果会是这样:


图片会在TextView右边竖直方向的中间位置显示,而不是我们期望的在最后一行位置显示。


这时我们可以尝试使用ImageSpan来将图片放置在最后一行:

 final TextView text = findViewById(R.id.text);
 final String string = "dkffkdjkfjdkfjkdjfdjfkjdkfjkdjkdjfkjdkjk";
 //创建一个SpannableString对象,后面增加空格是预留给图片的
 SpannableString spannableString = new SpannableString(string + " ");
 //创建图片的Drawable对象
 Drawable drawable = getResources().getDrawable(R.mipmap.copy);
 drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
 //创建图片的ImageSpan对象
 ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
 //设置ImageSpan,将其位置设置在spannableString最后面,起始位置start=spannableString.length() - 1,结束位置为end=spannableString.length(),
 // SPAN_INCLUSIVE_EXCLUSIVE表示包含start不包含end
 spannableString.setSpan(imageSpan, spannableString.length() - 1, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
 text.setText(spannableString);

文章标题:Android中多行文本末尾添加图片排版问题的解决方法-创新互联
新闻来源:http://myzitong.com/article/dcpchs.html