【发布时间】:2014-11-12 08:29:27
【问题描述】:
有一个带有文本区域的图像,上面有几个 TextView。我正在使用不同 dpi 的布局(layout-mdpi、layout-hdpi、layout-xhdpi),但对于不同的分辨率,我的 TextViews 仍然会移出。有没有办法为所有屏幕分辨率和 dpi 实现正确的 TextViews 位置? 使用“layout-hdpi-800x480”格式可以得到正确的结果,但我需要涵盖所有屏幕类型。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000" >
<ImageView
android:id="@+id/faqImage1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:scaleType="fitCenter"
android:src="@drawable/image_01" />
<TextView
android:id="@+id/textView1"
android:layout_width="180dp"
android:layout_height="30dp"
android:layout_alignLeft="@+id/faqImage1"
android:layout_alignTop="@+id/faqImage1"
android:layout_marginLeft="34dp"
android:layout_marginTop="40dp"
android:gravity="center"
android:text="@string/text1" />
<TextView
android:id="@+id/textView2"
android:layout_width="170dp"
android:layout_height="40dp"
android:layout_alignRight="@+id/faqImage1"
android:layout_below="@+id/textView1"
android:layout_marginRight="36dp"
android:layout_marginTop="13dp"
android:gravity="center"
android:text="@string/text2" />
</RelativeLayout>
【问题讨论】:
-
参见 ImageView.getImageMatrix() 和 Matrix.mapPoints()
-
用FrameLayout把TextView放在ImageView上不是更好吗?