尝试以网格类型布局排列图像视图

时间:2011-11-05 13:44:59

标签: android layout

我想要一个图像视图的网格类型布局。首先,我试着看看我是否可以使用简单的按钮。 这很容易,我可以使用线性布局创建一个按钮数组,但是当我尝试使用imageView而不是按钮时会出现问题。
是否有一种简单的方法可以强制android在一个按钮适合的完全相同的空间内适合imageView 图像视图似乎忽略了宽度权重?我不介意pic的宽高比是否会失真但理想情况下 保持这个比例,只是收缩图像,直到它完全吻合。让这个工作的最佳方法是什么?

这是我目前的xml .......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="4" >

<LinearLayout
    android:id="@+id/linearLayout3"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/chicken" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Button" />
</LinearLayout>
<LinearLayout
    android:id="@+id/linearLayout3"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" >
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Button" />
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Button" />
</LinearLayout>

</LinearLayout>

2 个答案:

答案 0 :(得分:0)

如果你在linearlayout中使用了weight / weightsum参数,你可能想要将高度(如果linearlayout是垂直的)或宽度(如果linearlayout是水平的)设置为0dip而不是fill_parent。这样你的layout_weight分布将正确计算。如果您使用相同的权重(1),这无关紧要,但是当您尝试为线性布局中的不同子项分配不同的权重时,您会发现差异。

对于图像视图,您可以查看此link以了解不同的图像视图比例类型。为了这个特定目的,你将需要FIT_XY。

答案 1 :(得分:0)

您可以尝试使用Romain Guy的photostream应用中使用的gridlayout。它根据行数和列数以相等大小的单元格布局子视图。 Here is source code

在xml文件中看起来像这样

<com.blessan.dashboard.GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <!--Child views go here-->
</com.blessan.dashboard.GridLayout>

您需要指定行数和列数。