2013-08-01 65 views
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個圖像。我的問題是我需要使用哪種適配器來確定需要加載的圖像以及執行此操作的常規設置,或者如果它們的複雜性較低,則可以實現相同的功能。

回答

0

您目前的設置不是最好的。你會想用一個列表視圖,而不是當前的佈局:

下面是關於列表視圖一個很好的教程:link