麻烦 - 不同密度的相同布局

时间:2012-02-28 22:18:08

标签: java android android-layout android-emulator

我在HVGA测试我的应用程序和WVGA800分辨率都是普通屏幕,所以我创建了中高密度的图像,但我不明白为什么我的文字“HVA中的Orientação”(标题)与WVGA800相比是分散的,我用“dp”单位编码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <ImageView
        android:id="@+id/imageCanadaNavBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:adjustViewBounds="true"
        android:src="@drawable/canada_navbar"
        android:onClick="imgTop_Click"  />       
   <ImageView 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/imageCanadaNavBar"
        android:src="@drawable/bg_viagem"
        android:scaleType="fitXY" />                                
    <TextView 
        android:id="@+id/txtTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"            
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:layout_marginTop="30dp"             
        android:textColor="#000000"
        android:textSize="19sp"
        android:gravity="center|center_vertical"        
        android:layout_below="@id/imageCanadaNavBar" />    
    <ScrollView 
        android:id="@+id/scrollTextoDetalhe"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="7dp" 
        android:layout_below="@id/txtTitle">                       
        <TextView 
            android:id="@+id/txtDetalhe"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"                       
            android:textColor="#FFFFFF"
            android:textSize="15dp"
            android:paddingRight="25dp"
            android:paddingLeft="25dp"
            android:paddingBottom="17dp"
            android:paddingTop="17dp" />        
    </ScrollView>
</RelativeLayout>

Comparison between WVGA800 and HVGA

4 个答案:

答案 0 :(得分:0)

尝试使用sp (Scale-independent Pixels)代替dp (Dentisy-Independent Pixels)

建议将其用于文字大小单位。

http://developer.android.com/guide/topics/resources/more-resources.html#Dimension

答案 1 :(得分:0)

您的边距和填充设置使其在一个实例中看起来居中,即使它确实不是。

android:gravity="center"更改为android:gravity="center|center_vertical",您的问题应该得到解决(您可能需要调整边距和填充位置)。

答案 2 :(得分:0)

我建议您不要使用单独的ImageView作为TextView的背景,而是将其实际设置为背景。您还应该确保Drawable是一个9补丁,以便可以正确缩放并调整填充/边距。所以而不是:

<ImageView 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/imageCanadaNavBar"
    android:src="@drawable/bg_viagem"
    android:scaleType="fitXY" />                                
<TextView 
    android:id="@+id/txtTitle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"            
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:layout_marginTop="30dp"             
    android:textColor="#000000"
    android:textSize="19sp"
    android:gravity="center|center_vertical"        
    android:layout_below="@id/imageCanadaNavBar" />

你应该有类似的东西:

<TextView 
    android:id="@+id/txtTitle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"            
    android:padding="10dp"
    android:textColor="#000000"
    android:textSize="19sp"
    android:gravity="center|center_vertical"       
    android:background="@drawable/bg_viagem" 
    android:layout_below="@id/imageCanadaNavBar" />

答案 3 :(得分:0)

在我的情况下,我将所有图像分开,以便用XML制作一个独特的图像。

New Layout

这是我的最终应用 Canada Destino