我想在图片
中显示自定义文字(主要是人物信息)
我怎么能在android中做到这一点?例如,我有一个已知的图像大小(它因设备而异),并希望在特殊位置显示其中不同的文本大小(示例在链接上方)。
答案 0 :(得分:0)
有几种方法可以实现这一目标。
我这样做的方法是将图像变成9-patch。要么不允许它伸展,要么标记要伸展的角色以外的区域。在任何一种情况下,使用右侧和底部区域来标记图像中您希望文本的位置。
然后,您只需将9-patch设置为TextView
的背景,您的文本将被放置在9-patch中标记的区域。
另一种方法是使用带有RelativeLayout
和ImageView
的{{1}},然后将TextView放在您需要的位置。但是,我发现尝试使用这种方法完美地定位视图是繁琐且容易出错的。 9补丁还允许您将此图像与几乎任何长度的文本一起使用,而不必担心文本在内容区域之外运行。
答案 1 :(得分:0)
您可以将图像设置为布局的背景,然后在该布局中添加一个或多个文本视图,并稍微调整边距直到它适合
例如看起来像这样:
<LinearLayout
android:background="@drawable/background"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/firstLine"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textSize="16sp" />
<TextView
android:id="@+id/secondLine"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:textSize="12sp" />
</LinearLayout>
答案 2 :(得分:0)
好吧,正如我之前在评论中建议的那样,将ImageView
和TextView
放在RelativeLayout
中,类似这样的内容(属性是随机的):
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/Image"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:layout_weight="0"
android:background="#ff1234"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_below="@id/Image"
android:layout_toRightOf="@id/Image"
android:layout_weight="1"
android:text="6363"
android:background="#ff0034" />
</RelativeLayout>