我有一个TextView
并且我想实现这个椭圆效果:
这是我的 XML 布局:</p>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tv1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:textSize="16sp"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="20dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:textColor="@color/white"
android:ellipsize="end"
android:maxLines="2"
/>
我的代码:
val drawable = ContextCompat.getDrawable(requireSceneContext() , R.drawable.playing_com_into)!!
drawable.setBounds(0, 0 , dp2px(10) , dp2px(10))
val text = "电影《We are all human》主题曲,电影《We are all human》主题曲,电影《We are all human》主题曲,电影《We are all human》主题曲,电影《We are all human》主题曲,电影《We are all human》主题曲"
val span = QMUIAlignMiddleImageSpan(drawable , ALIGN_MIDDLE , -1f)
val spannableString = SpannableString(text)
spannableString.setSpan(span , text.length -2 , text.length , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE )
binding.tv1.text = spannableString
当前效果
这是我现在得到的:
我要TextView优先显示ImageSpan,计算完Text宽度