我在将ImageView放置在TextView后面时遇到了问题,如果TextView变成了两行,那么我想要显示这个(图片跟随在文字后面,而且文字可以是一行、两行或三行)。当文本很短(只有一行)时,我的ImageView会跟在TextView后面。但是当文本变长(两行)时,图片会像这样移到下一行。
我知道这个问题的原因,但不知道怎么解决?
我知道这个问题的原因,但不知道怎么解决?
在大量搜索后,我终于找到了解决我的问题的好方法。
TextView textView =new TextView(this);
SpannableStringBuilder ssb = new SpannableStringBuilder( "Here's a smiley how are you " );
Bitmap smiley = BitmapFactory.decodeResource( getResources(), R.drawable.movie_add );
ssb.setSpan( new ImageSpan( smiley ), ssb.length()-1, ssb.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE );
textView.setText( ssb, BufferType.SPANNABLE );
尝试使用clickable="true"和drawableEnd而不是ImageView。
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableEnd="@drawable/navigation_icon"
android:text="Text"
android:clickable="true"
/>
尝试让你的XML看起来像下面这样。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:text="TextView" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/my_icon" />
</LinearLayout>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:padding="2dp"
android:background="@android:color/transparent"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:padding="1dp"
android:layout_gravity="left"
android:orientation="horizontal" >
<TextView
android:id="@+id/contentText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Medium T"
android:gravity="center"
android:minLines="2"
android:layout_gravity="center"
android:textColor="@color/white"
android:padding="5dp"
android:visibility="invisible"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="@+id/contentImage1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:padding="5dp"
android:visibility="invisible"
android:src="@drawable/browse_product_thumbnail" />
</LinearLayout>
</LinearLayout>
-Preeya