0

我正在尝试使用通用图像加载器将图像加载到网格视图中,但是当活动加载时我的应用程序似乎正在崩溃,我无法识别问题。我正在从数组中加载图像,然后调用图像适配器来填充它们。

我通过应用程序进行了调试,但在 LogCat 中没有看到任何突出的内容。

所有帮助将不胜感激:)

public class MainActivity extends Activity {

    String[] imageUrls;

    DisplayImageOptions options;
    protected ImageLoader imageLoader = ImageLoader.getInstance();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Bundle bundle = getIntent().getExtras();
        imageUrls = bundle.getStringArray(Extra.IMAGES);

        options = new DisplayImageOptions.Builder()
            .showStubImage(R.drawable.stub_image)
            .showImageForEmptyUri(R.drawable.image_for_empty_url)
            .cacheInMemory()
            .cacheOnDisc()
            .bitmapConfig(Bitmap.Config.RGB_565)
            .build();

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


    }

    public class ImageAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return imageUrls.length;
        }

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

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            final ImageView imageView;
            if (convertView == null) {
                imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false);
            } else {
                imageView = (ImageView) convertView;
            }

            imageLoader.displayImage(imageUrls[position], imageView, options);

            return imageView;
        }
    }
}

编辑:Logcat 错误:“AndroidRuntime(6789): java.lang.RuntimeException: ImageLoader 在使用前必须通过配置初始化”

4

1 回答 1

0

快速回答:要在 LogCat 中获取某些内容,您可以执行以下操作

try{

// Your code

}catch (Exception e){

    log.e(e.tostring());
}

而且,我一般把列表/数组放在适配器类里面,通过函数修改,

ImageAdapter.add(string s)

在适配器中:

List<String> imageURLs = new List<String>;

public int add(String s) {
    imageURLs.add(s);
    notifyDataSetChanged();
}

我希望这有帮助!

于 2013-01-04T16:49:26.243 回答