1

我的 android 应用程序中有一个水平图像列表。但问题是某些图像似乎不遵循我在 xml 中定义的布局。像这样:

假设它应该是均匀的距离

我的布局如下所示: mainlayout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/back_shop_list"
    android:orientation="horizontal">

  <com.devsmart.android.ui.HorizontalListView
      android:id="@+id/shop_hlist_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"
      android:paddingLeft="5dp"
      android:paddingRight="5dp"
      android:scrollX="1dp"
      android:scrollY="1dp"
      android:overScrollMode="always" >  
  </com.devsmart.android.ui.HorizontalListView>

</LinearLayout>

然后我的listlayout.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:translationY="200dp" >  

    <FrameLayout 
        android:id="@+id/framelayout" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:layout_gravity="center"
        android:orientation="vertical"
        android:paddingLeft="8dp"
        android:paddingRight="8dp" >

        <ImageView
            android:id="@+id/img"    
            android:clickable="true"
            android:adjustViewBounds="true"
            android:layout_width="360dp"
            android:layout_height="360dp" />  

        <ProgressBar
            android:id="@+id/img_progress"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminate="true"
            android:translationY="150dp"
            android:translationX="140dp" /> 

    </FrameLayout>

    <TextView
        android:id="@+id/labelText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:translationX="10dp"
        android:textColor="#dc6800"
        android:textSize="16sp"
        android:textStyle="bold" />
    <!-- Description label -->
    <TextView
        android:id="@+id/desc"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:translationX="10dp"
        android:textColor="#acacac"
        android:paddingBottom="2dip">
    </TextView>

</LinearLayout>

我的猜测是我的图像大小小于我的 ImageView 布局宽度和高度。或者我真的不知道是什么导致了这个问题。但请提供任何帮助。谢谢。

编辑:我真正想要的是,如果图像像图像 4 和图像 5,它不应该有这些空格。我尝试从 ImageLoader 获取图像的大小,然后在加载图像时在其中设置布局参数高度和宽度。但它看起来更糟。如果图像像图像 4 和 5,还有其他方法可以动态调整我的 ImageView 吗?

4

1 回答 1

1

如果实际上您想让图像占据所需的空间

尝试将此图像视图属性添加到您的 ImageView

您可以尝试其他我通常使用fitXY的预定义列表,您将在 XML 布局中获得该列表

android:scaleType="fitXY"

为了使这个属性工作,我们还需要

android:adjustViewBounds="true"

您已经在您的案例中添加的

如果实际上您想避免出现空白并让图像占据尽可能多的空间

在我的布局中,我使用两个图像视图来显示演示

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll_numbers"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignLeft="@+id/tv_numbers"
    android:layout_below="@+id/tv_numbers"
    android:layout_marginTop="5dip"
    android:layout_marginRight="10dip"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/textView1"
        android:layout_width="200dip"
        android:layout_height="200dip"
        android:src="@drawable/desert"/>

    <ImageView
        android:id="@+id/textView2"
        android:layout_width="200dip"
        android:layout_height="200dip"
        android:background="@drawable/desert"/>


</LinearLayout>

ImageView 1 将图像分配为Source使用android:src="@drawable/desert"

下面是结果,您可以注意到它周围显示了WhiteSpace

在此处输入图像描述

ImageView2 将图像分配为背景使用android:background="@drawable/desert" ,下面是结果,您可以注意到它周围没有显示任何WhiteSpace

在此处输入图像描述

或者尝试使用这些属性使其成为可能

android:maxHeight=""
        android:maxWidth=""
        android:minHeight=""
        android:minWidth=""
于 2013-04-01T12:05:51.100 回答