新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Android中多行文本末尾添加圖片排版問(wèn)題的解決方法-創(chuàng)新互聯(lián)
前言
最近在項(xiàng)目中需要在某個(gè)多行英文文本末尾增加一個(gè)圖片,嘗試了很多方法,最后用了一個(gè)比較Tricky的方法解決了,當(dāng)然這種方法不一定是最好最優(yōu)的解決辦法,記錄一下。
問(wèn)題
如果直接使用drawableRight或者drawableEnd來(lái)將圖片放置到文本末尾,結(jié)果會(huì)是這樣:
圖片會(huì)在TextView右邊豎直方向的中間位置顯示,而不是我們期望的在最后一行位置顯示。
這時(shí)我們可以嘗試使用ImageSpan來(lái)將圖片放置在最后一行:
final TextView text = findViewById(R.id.text); final String string = "dkffkdjkfjdkfjkdjfdjfkjdkfjkdjkdjfkjdkjk"; //創(chuàng)建一個(gè)SpannableString對(duì)象,后面增加空格是預(yù)留給圖片的 SpannableString spannableString = new SpannableString(string + " "); //創(chuàng)建圖片的Drawable對(duì)象 Drawable drawable = getResources().getDrawable(R.mipmap.copy); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); //創(chuàng)建圖片的ImageSpan對(duì)象 ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE); //設(shè)置ImageSpan,將其位置設(shè)置在spannableString最后面,起始位置start=spannableString.length() - 1,結(jié)束位置為end=spannableString.length(), // SPAN_INCLUSIVE_EXCLUSIVE表示包含start不包含end spannableString.setSpan(imageSpan, spannableString.length() - 1, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); text.setText(spannableString);
新聞名稱:Android中多行文本末尾添加圖片排版問(wèn)題的解決方法-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://www.dlmjj.cn/article/dcpchs.html