我必須這樣創建佈局:組織許多意見
正如你所看到的,所有視圖(圖像,按鈕)是一個滾動屏幕。這是一個專輯的佈局。
的問題是當我展示這張專輯屏幕,許多圖像,將其與內存不足的錯誤崩潰。
我選擇的方式是把所有的人都在LinearLayout
一個ScrollView
內。我知道如果我們需要展示很多視圖,我們可以使用listview,但我不能用ListView
來組織所有這些視圖。
誰能幫助我?
我必須這樣創建佈局:組織許多意見
正如你所看到的,所有視圖(圖像,按鈕)是一個滾動屏幕。這是一個專輯的佈局。
的問題是當我展示這張專輯屏幕,許多圖像,將其與內存不足的錯誤崩潰。
我選擇的方式是把所有的人都在LinearLayout
一個ScrollView
內。我知道如果我們需要展示很多視圖,我們可以使用listview,但我不能用ListView
來組織所有這些視圖。
誰能幫助我?
你的問題是與許多位圖。請閱讀這篇文章,以解決它:https://developer.android.com/training/displaying-bitmaps/index.html
我能想到的兩個選項:
組織的項目,使得在ListView
每個項目視圖都有一組交錯元素最終他們可以阻擋在外到ListView
元素。每個N圖像的頂部/底部將不得不在視圖邊界上排列。您也許可以將4-6張圖像放在交錯的圖案中,以便仍然可以實現效果,但是這些元素會變成可以回收的視圖。
使用兩個ListView
元素並排。您可以將OnScrollListener
傳遞給每個ListView
以同步滾動動作,而不管哪一個被觸摸,從而表現出它是一個視圖。通過這種方式,您可以完全交錯圖像,但由於必須從一個數據源提供兩個視圖,因此適配器需要更多工作。
對於製作這種類型的視圖,你必須使用線性佈局。 像這裏
線性佈局(垂直)
標題
圖像0 線性佈局水平
{
線性佈局垂直
按鈕按鈕
圖像0 圖像0 ...
}
線性佈局垂直
{
圖像0 圖像
...
}
您可以使用inSampleSize來減少內存佔用。
這裏是我的代碼
public static Bitmap decodeAndResizeFile(File f) {
try {
// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f), null, o);
// The new size we want to scale to
final int REQUIRED_SIZE = 70;
// Find the correct scale value. It should be the power of 2.
int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while (true) {
if (width_tmp/2 < REQUIRED_SIZE || height_tmp/2 < REQUIRED_SIZE)
break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}
// Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
} catch (FileNotFoundException e) {
}
return null;
}
在這裏,它會使用inSampleSize
解碼圖像和此代碼將找到最好的inSampleSize
值你。
它的工作對我罰款。
如果您不想使用上面的代碼,您還可以使用bitmap.recycle()
和System.gc()
來釋放未使用的內存。但是,上面的一個對我來說工作正常。你可以使用兩者中的任何一個。
objbitmap.recycle();
objbitmap = null;
System.gc();
希望這可以解決問題!
您是否使用位圖來顯示圖像?很多時候,我們正面臨OutOfMemory問題,因爲位圖 – 2013-03-07 04:02:32
如果你有錯誤,那麼你的代碼在那裏你設置imagebitmap ... – QuokMoon 2013-03-07 04:17:31
@AkbariDipali正確,我與許多位圖工作。 發送至: altaf我的應用程序工作正常,如果圖像在20左右,但在切換後一些屏幕或圖像數量變大 – 2013-03-07 04:44:12