自适应网格视图

时间:2014-06-25 08:30:15

标签: java android gridview

我正在做一个Android应用程序,我需要在活动中放入4个元素或图片。我的想法是图片分为两行和两列。 应用程序始终将其显示限制为纵向。

我认为gridview是一个很好的解决方案吗?但我的问题是,我怎么能用这个gridview来适应everey显示?

这是我定义它的布局:

<!-- ?xml version="1.0" encoding="utf-8"? -->
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:numColumns="2" />

此布局的一些新参数??

由于

2 个答案:

答案 0 :(得分:0)

尝试以下XML代码:

<!-- ?xml version="1.0" encoding="utf-8"? -->
<GridView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:verticalSpacing="0dp"
    android:horizontalSpacing="0dp"
    android:stretchMode="columnWidth"
    android:numColumns="2" />

答案 1 :(得分:0)

如果你有静态数字图像(比如4个图像),最好使用LinearLayout并为每个图像设置重量来填充页面,但是如果你没有静态数字,你需要编写自定义适配器和获取显示高度,然后在代码中将每个元素设置为(height / numberRow)。

首先建议您使用以下代码:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:layout_weight=".5"
    android:weightSum="1">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:src="@drawable/ic_launcher"
         android:layout_weight=".5" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:src="@drawable/ic_launcher" 
         android:layout_weight=".5"/>

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight=".5" >

        <ImageView
        android:id="@+id/imageView1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:src="@drawable/ic_launcher"
         android:layout_weight=".5" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:src="@drawable/ic_launcher" 
         android:layout_weight=".5"/>
</LinearLayout>

但第二个建议它更复杂。你需要做以下工作:

1 - 为gridView(Developing a custom adapter

创建自定义适配器

2 - 获取屏幕尺寸(How to get screen dimensions

3 - 将getView中View的高度设置为(height / numberRow)

并将以下代码设置为gridView

 android:numColumns="2"

每行创建2列