在我的應用程序中,我有一個ImageViews列表。這些ImageView的大小是1024x512。在XML中,這是每個ImageView的是如何定義的:將位圖加載到imageView的正確方法是什麼
<ImageView
android:id="@+id/imageView3"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/pic" />
,這是我如何設置每個的ImageView位在getView在ArrayAdapter:
File picToLoad = new File(localPhotosUrl.get(0));
byte[] array= null;
try {
array= org.apache.commons.io.FileUtils.readFileToByteArray(picToLoad);
System.gc();
Bitmap bitmap = BitmapFactory.decodeByteArray(array, 0, array.length);
holder.imgIcon.setImageBitmap(bitmap);
}
現在發現,我是從加載圖像SD卡是1024x512,但ImageView是75x75。這種方式是正確的嗎?意義設置圖像位圖全圖還是內存消耗?我應該在調用setImageBitmap之前將圖像大小調整爲75x75,否則它不會做任何更改?
請閱讀下面的答案,但也不應該調用'System.gc()',這是一個糟糕的做法(除非非常特殊的情況),android處理垃圾收集 –
爲什麼這是不好的做法?如果有的話它會收集一些垃圾early.I也認爲,顯式調用GC並不能確保垃圾將被收集 – Libathos
閱讀[this](https://stackoverflow.com/questions/2414105/why-is-it-a -bad-practice-to-call-system-gc)和[this](http://bugs.java.com/view_bug.do?bug_id=6668279) –