在Android中,在TextView之后放置ImageView

4
我在将ImageView放置在TextView后面时遇到了问题,如果TextView变成了两行,那么我想要显示这个(图片跟随在文字后面,而且文字可以是一行、两行或三行)。当文本很短(只有一行)时,我的ImageView会跟在TextView后面。但是当文本变长(两行)时,图片会像这样移到下一行。
我知道这个问题的原因,但不知道怎么解决?
4个回答

7

在大量搜索后,我终于找到了解决我的问题的好方法。

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 );

通过上面的代码,您可以在TextView中任何地方添加图像。

2

尝试使用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"
    />

0

尝试让你的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>

抱歉,我认为你没有理解问题所在。首先,你试试这个,写1个半行文本,然后尝试将图像放在文本后面...并检查发生了什么。 - Atul Bhardwaj

0
请使用以下布局。
 <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


抱歉,我觉得你没有理解问题。首先,你可以尝试这个,写一行半的文本,然后尝试在文本后面放置图像... 然后检查一下发生了什么。 - Atul Bhardwaj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接