首页 > 代码库 > Android 实现文字与图片的混排

Android 实现文字与图片的混排

在我们的项目中,经常会碰到图片与文字混排的问题。解决这类问题的方法有很多,本文给出的方法不是唯一的,只有根据实际场景才能找到更适合的方法。

本文主要通过xml布局来实现图片与文字的混排(水平排列)。


1.利用TextView实现图片与文字混排,

android:drawableBottom在text的下方输出一个drawable,如图片。

如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。
android:drawableLeft在text的左边输出一个drawable,如图片。
android:drawablePadding设置text与drawable(图片)的间隔,

与drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。
android:drawableRight在text的右边输出一个drawable。
android:drawableTop在text的正上方输出一个drawable。


        <TextView
            android:id="@+id/my_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="在线"
            android:textColor="#85898f"
            android:layout_marginTop="5dp"
            android:drawablePadding="5dp"
            android:drawableLeft="@drawable/user_online"/>

其中, android:drawablePaddingh很好的解决了图片与文字的间距问题。

2.利用RelativeLayout(LinearLayout) 添加 TextView 和 ImageView(ButtonView)来实现

   <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/my_iv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:background="@drawable/user_online"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="5dp"
            />
        
        <TextView
            android:id="@+id/my_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:layout_toRightOf="@id/my_iv"
            android:layout_centerVertical="true"
            android:layout_marginLeft="5dp"
            />
    </RelativeLayout>


其实也可以通过java代码来实现图片和文字的混排。