android studio预览和手机之间的差异

时间:2016-08-03 07:31:02

标签: android xml android-studio

我有一个名为'neura_bar_img'的ImageView,右边有两个TextView:

enter image description here

XML代码:

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/summaryCard"
    android:layout_below="@+id/topCard"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    app:layout_heightPercent="25%"
    app:layout_marginTopPercent="3%"
    >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingTop="3dp"
        android:paddingBottom="3dp">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true">
            <ImageView
                android:layout_width="270dp"
                android:layout_height="113dp"
                android:id="@+id/neura_bar_img"
                android:src="@drawable/detailed_daily_sum"
                android:layout_centerVertical="true" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@id/neura_bar_img"
                android:layout_alignBottom="@id/neura_bar_img"
                android:layout_alignLeft="@id/neura_bar_img"
                android:layout_alignRight="@id/neura_bar_img"
                android:gravity="center"
                android:id="@+id/detailed_goal_text"
                android:textStyle="italic"
                android:text="0"
                android:textSize="30sp"
                android:textColor="@color/graphicsBlue"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/detailed_bites_eaten_text"
                android:layout_alignTop="@id/neura_bar_img"
                android:layout_alignBottom="@id/neura_bar_img"
                android:layout_alignLeft="@id/neura_bar_img"
                android:layout_alignRight="@id/neura_bar_img"
                android:gravity="center"
                android:layout_marginRight="170dp"
                android:layout_marginTop="10dp"
                android:textStyle="bold|italic"
                android:text="0"
                android:textSize="45sp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/sports_part_text"
                android:layout_alignTop="@id/neura_bar_img"
                android:layout_alignBottom="@id/neura_bar_img"
                android:gravity="center"
                android:layout_marginTop="58dp"
                android:layout_marginLeft="0dp"
                android:layout_toRightOf="@+id/neura_bar_img"
                android:text="---"
                android:textSize="30sp"
                android:textColor="@color/graphicsOrange"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/bites_part_text"
                android:layout_alignTop="@id/neura_bar_img"
                android:layout_alignBottom="@id/neura_bar_img"
                android:gravity="center"
                android:layout_marginBottom="54dp"
                android:layout_marginLeft="0dp"
                android:layout_toRightOf="@+id/neura_bar_img"
                android:text="0"
                android:textSize="30sp"
                android:textColor="@color/graphicsGrey"/>
        </RelativeLayout>
    </RelativeLayout>
</android.support.v7.widget.CardView>

在Android Studio的预览中看起来很不错。但在某些设备上,ImageView和文本视图之间存在差距。这是一个例子:

enter image description here

  • 这张照片是从LG G3拍摄的,但我在Moto G上看到了同样的问题

我不知道为什么会这样,并且没有在网上找到任何类似的案例。

提前致谢!

2 个答案:

答案 0 :(得分:1)

您的imageView缺少默认设置为scaleType的{​​{1}}属性,具体取决于设备,请尝试此操作

fitcenter

另外,不同的Android通常有不同的屏幕指标:

LG 3:<ImageView android:id="@+id/ZKt_qF_kgP" android:layout_width="270dp" android:layout_height="113dp" android:src="@drawable/neura_bar_img" android:layout_centerVertical="true" android:scaleType="fitXY" />
Moto G:480dp x 835dp
Nexus 4(在我的情况下默认为android studio预览版):360dp x 640dp
有关更多设备指标,请参阅此table

如果要调整上述三个设备的应用程序,则需要在相应的文件夹中为每个指标(此处为宽度)指定布局:

384dp x 640dp layout-sw360dp layout-sw480dp

答案 1 :(得分:0)

嗯,这可能是您正在使用的布局类型。

屏幕密度不同,您使用的某些值(px,dp等)在不同的设备上可能看起来不一样。

我几乎总是使用LinearLayout,因为我可以使用&#34; weight&#34;属性。

我不知道这是否是您正在寻找的答案,但我尝试过:D