0

这是我的问题:我有一个包含 28 张图像的“图库”,可以垂直滚动,加载时出现内存不足错误。为了克服这个问题,我正在尝试遵循本指南: http: //developer.android.com/training/displaying-bitmaps/cache-bitmap.html对所有图像进行缓存,然后使用适配器确定哪些图像是实际上在屏幕上,只有在需要时才加载。这是我的 xml 布局的一部分:

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView"
    android:background="@drawable/background7">

<TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:divider="?android:attr/dividerHorizontal"

        android:showDividers="middle">

    <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:divider="@color/Black"
            android:showDividers="end"
            android:layout_marginBottom="-35dp"
            android:weightSum="100">

        <ImageView
                android:layout_width="200dp"
                android:layout_height="200dp"
                android:id="@+id/image1"
                android:layout_column="1"
                android:src="@drawable/plane1"
                android:layout_weight="50"
                android:clickable="true"
                android:longClickable="true"/>

        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Boeing 757-200"
                android:id="@+id/textView"
                android:layout_column="5"
                android:layout_marginTop="75dp"
                android:layout_marginLeft="10dp"
                android:layout_weight="50"
                android:textStyle="bold"
                android:textColor="#000"/>

    </TableRow>

    <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="-35dp"
            android:weightSum="100">

        <ImageView
                android:layout_width="200dp"
                android:layout_height="200dp"
                android:id="@+id/image2"
                android:layout_column="1"
                android:src="@drawable/plane2"
                android:layout_weight="50"/>
        <TextView
                android:textStyle="bold"
                android:textColor="#000"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="C-17"
                android:id="@+id/textView"
                android:layout_column="5"
                android:layout_marginTop="75dp"
                android:layout_marginLeft="10dp"
                android:layout_weight="50"/>
    </TableRow>
    <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginBottom="-35dp"
            android:weightSum="100">

        <ImageView
                android:layout_width="200dp"
                android:layout_height="200dp"
                android:id="@+id/image3"
                android:layout_column="1"
                android:src="@drawable/plane3"
                android:layout_weight="50"/>
        <TextView
                android:textStyle="bold"
                android:textColor="#000"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Cessna Citation Sovereign"
                android:id="@+id/textView"
                android:layout_column="5"
                android:layout_marginTop="75dp"
                android:layout_marginLeft="10dp"
                android:layout_weight="50"/>
    </TableRow>

每个 TableRow 是一个不同的图像,它延续到 28 个图像。我的问题是我需要使用什么样的适配器来确定需要加载的图像以及执行此操作的一般设置,或者它们是否不太复杂可以完成相同的事情。

4

1 回答 1

0

您当前的设置不是最好的。您可能希望使用列表视图而不是当前布局:

<ListView 
    android:id="@+id/listview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

这是一个关于列表视图的好教程:链接

于 2013-08-01T20:18:39.833 回答