向上或向下滚动时应用程序崩溃

时间:2016-04-13 12:13:11

标签: android gridview scroll imageview adapter

我是Android Studio新手,遇到了问题。我有一个Android应用程序,如果我向上或向下滚动崩溃,前12个图像显示正常,但我似乎无法滚动查看我编码的其他图像。

main_activity.xml:

# define _gCore [Core sharedCore]

ImageAdapter.java:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawer_layout">

<RelativeLayout
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="1">

</RelativeLayout>


<ListView
    android:layout_width="200dp"
    android:layout_height="match_parent"
    android:id="@+id/lv_sliding_menu"
    android:background="#FFFFFF"
    android:choiceMode="singleChoice"
    android:layout_gravity="start"/>

<GridView
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:columnWidth="128dp"
    android:numColumns="auto_fit"
    android:stretchMode="columnWidth"
    android:gravity="center"/>

MainActivity.java:

public class ImageAdapter extends BaseAdapter {
private Context mContext;

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

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

public Object getItem(int position) {
    return null;
}

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

// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;

    if (convertView == null) {
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(260, 260));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    }
    else
    {
        imageView = (ImageView) convertView;
    }
    imageView.setImageResource(mThumbIds[position]);
    return imageView;
}

// Keep all Images in array
public Integer[] mThumbIds = {
        R.drawable.img1, R.drawable.img2,
        R.drawable.img3, R.drawable.img4,
        R.drawable.img5, R.drawable.img6,
        R.drawable.img7, R.drawable.img8,
        R.drawable.img9, R.drawable.img10,
        R.drawable.img11, R.drawable.img12,
        R.drawable.img13, R.drawable.img14,
        R.drawable.img15, R.drawable.img16,
};
}

Logcast:

    gridview = (GridView) findViewById(R.id.gridview);
    gridview.setAdapter(new ImageAdapter(this));

1 个答案:

答案 0 :(得分:-1)

你得到一个OutOfMemoryException。这正是它所说的。 ListView项目的内容可能太多而无法处理。确保您没有使用文件较大的图像。