我的ImageView正在根据图像(Android)改变大小

时间:2013-07-22 11:28:16

标签: android image imageview image-size

我正在为Android编写应用程序,我遇到了下一个问题:

我需要通过Http将下载的图像显示到包含ImageView和Text的列表视图中。它们都包含在LinearLayout中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<ImageView
    android:id="@+id/imagenEvento"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:scaleType="fitXY"
    android:adjustViewBounds="true"
    android:paddingBottom="2dp"     
    android:contentDescription="@string/contenidoImagen"       

    />


<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="left"
    android:padding="10dp"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/titulo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="17sp"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/sitio"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12sp"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/fecha"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12sp"
        android:textAppearance="?android:attr/textAppearanceSmall" />

</LinearLayout>

使用不同大小的dinamically Iload图像,但是当我加载其中一些时,我的ImageView的大小受到影响,它不会尊重我的高度和宽度声明。

我试图建立MAX和MIN尺寸,我已经在代码中定义了布局参数,建立了填充底部,重新调整了位图,但没有任何效果。

在下一张图片中,黄色圆圈显示相同的空间,红色的圆圈显示ImageView和行的底部之间的不同空格 http://imageshack.us/photo/my-images/32/csww.jpg/

我错过了什么?

2 个答案:

答案 0 :(得分:3)

你可以尝试这段代码。如果这个dint工作,那么你可以使用relativelayout并将所有图像视图和文本放在布局中并尝试调整相对布局

<ImageView
    android:id="@+id/imagenEvento"
    android:layout_width="80dp"
    android:layout_height="fill_parent"
    android:scaleType="fitXY"
    android:adjustViewBounds="true"
    android:paddingBottom="2dp"     
    android:contentDescription="@string/contenidoImagen"       

    />

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/darker_gray"
        android:layout_alignParentTop="true" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="16dp"
            android:layout_toRightOf="@+id/imageView1"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="TextView" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textView1"
            android:layout_below="@+id/textView1"
            android:text="Content Name" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textView2"
            android:layout_below="@+id/textView2"
            android:text="29/02/2009" />
    </RelativeLayout>

</RelativeLayout>

enter image description here

答案 1 :(得分:0)

为什么你要使用android:adjustViewBounds如果你想要特定尺寸的ImageView? 使用android:adjustViewBounds,你的ImageView将改变它的大小以保持图像的宽高比。

如果要以真80x80显示图像 - 删除android:adjustViewBounds并将scaleType更改为centerCrop。这样,图像将尽可能缩小图像,因此两个尺寸都将触及ImageView边界,其余部分将被裁剪。

或者使用scaleType =“centerInside”如果你想让图像完全可见(看起来更加丑陋100%保证:D)

无论哪种方式,android:adjustViewBounds都必须去。