我很难获得自定义列表视图行布局来处理不同的图像大小,同时保持其整体形状正确。
我希望使用不同大小的不同图像来实现以下Listview行。通过将图像缩放到特定大小,每行应具有相同的大小。
我想要的行布局
我的代码(注意我已经尝试了几种不同的方法,但都没有正确缩放(即一个图像不应该大于另一个图像)或者它们不能保持在正确的位置相对于彼此。
<ImageView
android:id="@+id/iv_logo"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/logo1" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/league_name"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginRight="6dip"
android:layout_weight="1"
android:text="Text" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal" >
<ImageView
android:id="@+id/iv_image1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginRight="6dip"
android:layout_weight="1"
android:src="@drawable/image1" />
<ImageView
android:id="@+id/iv_image2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginRight="6dip"
android:layout_weight="1"
android:src="@drawable/image2" />
<ImageView
android:id="@+id/iv_image3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginRight="6dip"
android:layout_weight="1"
android:src="@drawable/image3" />
</LinearLayout>
</LinearLayout>
这可能是几个问题,每个想象或文本视图周围的空间,而不是缩放到xml布局中设计的相同大小...
答案 0 :(得分:2)
我使用了RelativeLayout,以下是解决方案。 您需要编辑xml一点,因为我使用了背景颜色。无论如何,检查一下是否有效;如果没有,我将开始研究LinearLayout解决方案:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="128dp"
>
<ImageView
android:id="@+id/iv_logo"
android:layout_width="128dp"
android:layout_height="128dp"
android:background="@color/blue"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
/>
<LinearLayout
android:layout_toRightOf="@id/iv_logo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/red"
>
<TextView
android:id="@+id/league_name"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@color/orange"
android:textColor="@color/white"
android:text="Text" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:orientation="horizontal"
android:background="@color/black"
>
<ImageView
android:id="@+id/iv_image1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/gray" />
<ImageView
android:id="@+id/iv_image2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/yellow" />
<ImageView
android:id="@+id/iv_image3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/green" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
答案 1 :(得分:1)
试试这个:
<ImageView
android:id="@+id/iv_logo"
android:layout_width="0px"
android:layout_height="match_parent"
android:src="@drawable/logo1" android:layout_weight="3"/>
<LinearLayout
android:layout_width="0px"
android:layout_height="match_parent"
android:orientation="vertical" android:layout_weight="7">
<TextView
android:id="@+id/league_name"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="6dip"
android:layout_weight="1"
android:text="Text" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal" android:weightSum="3">
<ImageView
android:id="@+id/iv_image1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="6dip"
android:layout_weight="1"
android:src="@drawable/image1" />
<ImageView
android:id="@+id/iv_image2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="6dip"
android:layout_weight="1"
android:src="@drawable/image2" />
<ImageView
android:id="@+id/iv_image3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="6dip"
android:layout_weight="1"
android:src="@drawable/image3" />
</LinearLayout>
</LinearLayout>
答案 2 :(得分:0)
// Try this way,hope this will help you...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp" >
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
android:src="@drawable/ic_launcher"
android:layout_weight="0.25"
android:scaleType="fitXY"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.75"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:gravity="center"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher"/>
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher"/>
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>