2011-06-01 87 views
0

我有一个正方形的图像...在布局中,我想在正方形内设置文本,所以我将属性边距底部100dp设置为'TextView',在HDPI手机中我的文本是正方形。这很酷。但是,当我在MDPI设备上运行我的应用程序时,文本看起来应该高一点。Android:TextView保证金底部

其可理解,因为MDPI和HDPI有不同的分辨率......那么该怎么做?如何设置文本,使其外观在两个设备上都成比例?

+0

你用什么单位设置文字大小?如果使用dip(密度独立像素),则文本大小将按比例相同。 – 2011-06-01 14:05:48

+0

文字大小?我们不是在谈论文字大小.... – Jim 2011-06-01 14:15:51

回答

1

你为什么不只是包装的图像和文本的FrameLayout内,并给TextView的一个layout_gravity="center"属性?用你目前的方法,不同的纵横比会给你不同的定位。

+0

我的广场在图像不在中心... – Jim 2011-06-01 14:16:34

+1

你想叠加到图像的特定部分?在这种情况下,你可能只想给TextView一个''top | left''的layout_gravity,''center''的重力',并找到正确的像素x,y坐标,正方形的大小像素,并给你的TextView的宽度和高度,左上边距分别匹配x和y坐标。 – kcoppock 2011-06-01 14:20:59

+0

真的,有可能有更好的方法来做到这一点。请添加更多详细信息。您可能只需将图像放在图像上,然后只需给TextView一个背景就可以匹配。 – kcoppock 2011-06-01 14:21:43

1

在这种情况下,您可以使用FrameLayout。下面是一个简单的例子:

<FrameLayout 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:background="#ff0000"> 

    <ImageView 
     android:layout_height="100dp" 
     android:layout_width="100dp"    
     android:background="#00ff00" 
     android:src="@drawable/icon" 
     android:scaleType="fitXY" /> 

    <TextView 
     android:layout_height="100dp" 
     android:layout_width="100dp"    
     android:gravity="center" 
     android:text="This is text" 
     android:textColor="#0000ff"/> 

</FrameLayout> 

enter image description here

+0

哈,打我吧。好答案。 :D – kcoppock 2011-06-01 14:15:58

+0

我的图像是480为320和广场不在图像的中心 – Jim 2011-06-01 14:18:51

+0

@Jim,请更新您的问题与此细节。还可以添加你想要的东西与你看到的东西的截图。 – inazaruk 2011-06-01 14:20:11

相关问题