Android GridView示例不工作

Android GridView示例不工作,android,android-layout,gridview,android-logcat,Android,Android Layout,Gridview,Android Logcat,我正在从以下链接获取帮助:。当我运行我的应用程序时,我的应用程序停止工作。我得到以下错误。我想创建gridview,在gridview中显示缩略图图像,单击时显示全尺寸图像。为此,我在drawable中保存每个图像的缩略图和完整图像。如何做到这一点?请帮帮我 ImageAdapter类- public class ImageAdapter extends BaseAdapter { private Context mContext; public Integer[] mThum

我正在从以下链接获取帮助:。当我运行我的应用程序时,我的应用程序停止工作。我得到以下错误。我想创建gridview,在gridview中显示缩略图图像,单击时显示全尺寸图像。为此,我在drawable中保存每个图像的缩略图和完整图像。如何做到这一点?请帮帮我

ImageAdapter类-

public class ImageAdapter extends BaseAdapter {
    private Context mContext;

    public Integer[] mThumbIds = {
            R.drawable.kri1, R.drawable.kri2,
            R.drawable.kri3, R.drawable.kri4,
            R.drawable.kri5, R.drawable.kri6,
            R.drawable.kri7, R.drawable.kri8,
            R.drawable.kri9,R.drawable.kri7, R.drawable.kri8,
            R.drawable.kri9, R.drawable.kri7, R.drawable.kri8,
            R.drawable.kri9
    };

    // Constructor
    public ImageAdapter(Context c){
        mContext = c;
    }

    @Override
    public int getCount() {
        return mThumbIds.length;
    }

    @Override
    public Object getItem(int position) {
        return mThumbIds[position];
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView = new ImageView(mContext);
        imageView.setImageResource(mThumbIds[position]);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
        return imageView;
    }

}
Logcat-

02-20 07:06:19.930: E/AndroidRuntime(2541): FATAL EXCEPTION: main
02-20 07:06:19.930: E/AndroidRuntime(2541): Process: com.example.gridview, PID: 2541
02-20 07:06:19.930: E/AndroidRuntime(2541): java.lang.OutOfMemoryError
02-20 07:06:19.930: E/AndroidRuntime(2541):     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
02-20 07:06:19.930: E/AndroidRuntime(2541):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:575)
02-20 07:06:19.930: E/AndroidRuntime(2541):     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:410)
02-20 07:06:19.930: E/AndroidRuntime(2541):     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840)
02-20 07:06:19.930: E/AndroidRuntime(2541):     at android.content.res.Resources.loadDrawable(Resources.java:2110)
02-20 07:06:19.930: E/AndroidRuntime(2541):     at android.content.res.Resources.getDrawable(Resources.java:700)
02-20 07:06:19.930: E/AndroidRuntime(2541):     at android.widget.ImageView.resolveUri(ImageView.java:638)
02-20 07:06:19.930: E/AndroidRuntime(2541):     at android.widget.ImageView.setImageResource(ImageView.java:367)

您使用的是高分辨率图像,因此它在堆上提供了很大的负载。相反,请尝试对getView上使用的图像进行向下采样


您正在使用高分辨率位图。而是将缩略图加载到memory@GopalRao如何使用缩略图?我想打开完整的图像点击任何图像。阅读如何处理位图和样本项目…在哪里使用此代码。我有9个图像,所以我必须使用哪个Id图像?正如我在回答中所说的,您正在获取关于getView方法的引用,每次获取图像时,请使用上面的BitmapFactory方法来下载示例图像,这样它就不会填满堆内存。看起来图像的分辨率很高。在你的情况下,你可以根据我的代码更改你答案中的代码。我不明白你的意思。如何有效地加载大型位图:请阅读上面的链接@user3126670,它详细地解释了你的情况。
BitmapFactory.Options options = new BitmapFactory.Options();
// set options for your need here
BitmapFactory.decodeResource(context, yourImageId, options);