我正在为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/
我错过了什么?
答案 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>
答案 1 :(得分:0)
为什么你要使用android:adjustViewBounds如果你想要特定尺寸的ImageView? 使用android:adjustViewBounds,你的ImageView将改变它的大小以保持图像的宽高比。
如果要以真80x80显示图像 - 删除android:adjustViewBounds并将scaleType更改为centerCrop。这样,图像将尽可能缩小图像,因此两个尺寸都将触及ImageView边界,其余部分将被裁剪。
或者使用scaleType =“centerInside”如果你想让图像完全可见(看起来更加丑陋100%保证:D)
无论哪种方式,android:adjustViewBounds都必须去。