2014-09-22 2 views
0

У меня есть приложение для Android, в котором каждый уровень имеет изображение 250 * 250 (пиксель), и все уровни находятся в одной активности с именем «game1.java». потому что многие параметры макета меняются в уровнях; Я называю тот же класс, используя Intent и finish() класс, когда я хочу изменить уровень игры. в том, что у меня есть проблемы в использовании домкрата, и я попытался использовать это в game1 классе:Как добавить ImageLoader в android

https://github.com/nostra13/Android-Universal-Image-Loader

, но я, к сожалению каждый раз, когда я хочу открыть свою деятельность.

это атрибут game1 класса:

ImageLoader imageLoader; 

эта часть находится в начале OnCreate:

 super.onCreate(savedInstanceState); 

    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).build(); 
    ImageLoader.getInstance().init(config); 

    File cacheDir = StorageUtils.getCacheDirectory(getBaseContext()); 
    DisplayImageOptions options = new DisplayImageOptions.Builder() 
      .resetViewBeforeLoading(false) // default 
      .delayBeforeLoading(0) 
      .cacheInMemory(false) // default 
      .cacheOnDisk(true) // default 
      .build(); 

всякий раз, когда мне нужен новый образ я называю эту функцию и дать strName имя и расширение моего изображения, находящегося в папке с ресурсами. например «image1.jpg»

private Bitmap getBitmapFromAsset(String strName) 
{ 
    String imageUri = "assets://" + strName; 

    //Bitmap bmp = ImageLoader.getInstance().loadImageSync(imageUri); 
    imageLoader.loadImage(imageUri,new SimpleImageLoadingListener(){ 
     @Override 
     public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 

      super.onLoadingComplete(imageUri, view, loadedImage); 
      bmp_loader=loadedImage; 
     } 
    }); 

    return bmp_loader; 
} 

то я даю изображение в ImageView с помощью функции setImageBitmap

, где проблема?

+0

post LogCat Errors –

+0

Мой ответ не устраняет вашу проблему? –

+0

Я добавил свой ответ на сообщение – STNHZ

ответ

1

с помощью моих друзей помогает; это то, что я сделал в конце концов, чтобы исправить проблему:

Шаг 1: Я устанавливаю свой загрузчик в первую активность своей игры; в OnCreate:

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder() 
      .bitmapConfig(Bitmap.Config.RGB_565) 
      .build(); 

    ImageLoaderConfiguration config = new ImageLoaderConfiguration 
      .Builder(getBaseContext()) 
      .defaultDisplayImageOptions(defaultOptions) 
      .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) 
      .discCacheSize(50 * 1024 * 1024) 
      .discCacheFileNameGenerator(new Md5FileNameGenerator()) 
      .build(); 

шаг 2:

в game1.class; после того, как super.oncreate:

 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).build(); 
    ImageLoader.getInstance().init(config); 

    File cacheDir = StorageUtils.getCacheDirectory(getBaseContext()); 
    DisplayImageOptions options = new DisplayImageOptions.Builder() 
      .resetViewBeforeLoading(false) // default 
      .delayBeforeLoading(0) 
      .cacheInMemory(false) // default 
      .cacheOnDisk(true) // default 
      .build(); 

Я дал imageaddress, что необходимое для строки

ax_level = "level_01.jpg"; 

определен мой ImageView

ImageView posht_safhe = (ImageView) findViewById(R.id.rook_ax); 

дал образ моей ImageView

String pin_url = "assets://"+ax_level; 
    DisplayImageOptions option = new DisplayImageOptions.Builder() 
      .cacheOnDisc(true) 
      .cacheInMemory(false) 

      .bitmapConfig(Bitmap.Config.RGB_565) 
      .build(); 

    ImageLoader.getInstance().displayImage(pin_url ,posht_safhe, option, new SimpleImageLoadingListener() { 
     @Override 
     public void onLoadingComplete(String imageUri, View view, 
             Bitmap loadedImage) { 

    //    bitmap = loadedImage; 
     } 
    }); 

и, наконец, это обработано

0

это очень простая ошибка :) Вы не определили imageLoader, а imageLoader имеет значение null при попытке позвонить loadImage(...)!

изменить код ImageLoader.getInstance().init(config); к этому

imageLoader = ImageLoader.getInstance(); 
imageLoader.init(config); 
Смежные вопросы