使用相同的XML布局显示两个不同的图像

时间:2014-12-23 23:40:48

标签: android android-layout

我对我在当前Android应用中检测到的问题有疑问。 有一个包含自定义列表项的列表视图。 这是XML布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/blanco"
    android:orientation="horizontal"
    android:padding="5dip" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="@color/fondo"
        android:orientation="vertical"
      >

        <TextView
            android:id="@+id/dia"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="12"
            android:textColor="@color/negro"
            android:textColorHint="@color/negro"
            android:textSize="40sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/mes"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="Diciembre"
            android:textColor="@color/blanco"
            android:textColorHint="@color/blanco"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/hora"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="TextView"
            android:textColor="@color/negro"
            android:textSize="25sp" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/linearLayout1"
        android:layout_below="@+id/linearLayout2"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/titulo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:lines="1"
            android:text="TextView"
            android:textSize="18sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/lugar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="TextView"
            android:textSize="14sp" />


    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/linearLayout1"
        android:layout_alignTop="@+id/linearLayout1"
        android:layout_toRightOf="@+id/linearLayout1"

        android:orientation="vertical" >

        <ImageView
            android:id="@+id/imagen"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:background="@color/negro"
            android:scaleType="fitCenter"
            android:src="@drawable/bolera" />

    </LinearLayout>

</RelativeLayout>

这是来自在模拟器上运行的应用程序的屏幕截图。在这种情况下,我向您显示列表的两行。布局中的图片ID为android:id="@+id/imagen"

enter image description here

如您所见,两个图像的显示方式不同,但两个图像的高度,宽度和分辨率相同,均为528x201px jpg文件。 enter image description here enter image description here

我需要找到一个解决方案,或者为什么它们的显示方式不同。

谢谢。

2 个答案:

答案 0 :(得分:1)

在布局中,您定义了三个单独的LinearLayouts,并且没有两个具有相同的元素集。一个有3个TextView,一个有2个TextView,一个有1个ImageView。我注意到你最后的Imageview是高度

android:layout_height="match_parent"

代码中的大多数其他内容都是

android:layout_height="wrap_content"

我不能保证这会解决你的问题并且知道布局片段之间的相互作用有时是非常错综复杂的。希望这将开始揭示所产生的潜在问题。

快乐的编码!如果您有任何疑问,请将其留在评论中。

答案 1 :(得分:1)

    <ImageView
        android:id="@+id/imagen"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:background="@color/negro"
        android:scaleType="fitCenter"
        android:src="@drawable/bolera" />

这将有助于解决您的问题,您正在使用android:scaleType="fitCenter"以及 FIT_CENTER 所做的使用CENTER 缩放图像。 那个中心是什么?好吧,它计算一个维持原始src纵横比的比例,但也会确保src完全适合dst。至少一个轴(X或Y)将完全适合。结果集中在dst ..这就是你现在所拥有的...现在..第一个图像采用x轴,第二个y轴...修复它,分配一个特定的图像在您的imageview上维度并使用 FIT_XY .. 它是如何工作的? well fit_xy 使用FILL 缩放图像并单独使用FILL 缩放X和Y,以便src与dst完全匹配。这可能会改变src的宽高比reference

    <ImageView
        android:id="@+id/imagen"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="@color/negro"
        android:scaleType="fit_xy"
        android:src="@drawable/bolera" />

应该给你统一的方面..也纠正代码格式好吧..有些可能是错的..希望它有帮助..

相关问题