0

ユニバーサルイメージローダーを使用して画像をグリッドビューにロードしようとしていますが、アクティビティがロードされるとアプリがクラッシュしているようで、問題を特定できません。配列から画像を読み込んでから、画像アダプタを呼び出して画像を入力しています。

すべての助けは大歓迎です:)

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エラー:

01-04 14:43:40.990: E/AndroidRuntime(11510): FATAL EXCEPTION: main
01-04 14:43:40.990: E/AndroidRuntime(11510): java.lang.RuntimeException: ImageLoader must be init with configuration before using
01-04 14:43:40.990: E/AndroidRuntime(11510):    at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:175)
01-04 14:43:40.990: E/AndroidRuntime(11510):    at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:131)
01-04 14:43:40.990: E/AndroidRuntime(11510):    at com.example.breaktheglass.ImageGridActivity$ImageAdapter.getView(ImageGridActivity.java:96)

だから私はこれを追加しました:

ImageLoader.init(ImageLoaderConfiguration.createDefault(this));

イメージローダー(.getInstanceの下)を呼び出す前に、次のエラーが発生します。

Syntax error on token "init", Identifier expected after this token

ここからどこへ行けばいいのかよくわかりません。

4

1 に答える 1

1

このようにコードシーケンスを変更するだけです。

protected ImageLoader imageLoader;

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

    imageLoader = ImageLoader.getInstance();
    imageLoader.init(ImageLoaderConfiguration.createDefault(this));

何が起こるか教えてください。

詳細については、https://github.com/nostra13/Android-Universal-Image-Loaderをご覧ください。

于 2013-01-04T19:52:10.403 に答える