将位图加载到imageView的正确方法是什么?

时间:2014-03-05 08:48:05

标签: android bitmap

在我的应用程序中,我有一个ImageView列表。这些ImageView的大小为1024x512。在xml中,这是每个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" />

这就是我在ArrayAdapter中的getView中设置每个ImageView的位图的方法:

        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之前将Image的大小调整为75x75,否则它不会进行任何更改?

1 个答案:

答案 0 :(得分:1)

阅读官方android页面上的Loading Large Bitmaps Efficiently 文章。加载位图非常有帮助