動的なイメージ ビューを使用してビューフリッパーを作成しようとしています。イメージビューの src は SD カード パスから取得されます。ユニバーサル イメージ ローダー ライブラリを使用してイメージをロードしたいと考えています。イメージをイメージビューにバインドしているときに、null ポインター例外が発生します。
以下は私のコードです
private class someTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
getPages();
return null;
}
@Override
protected void onPostExecute(Void result) {
setPageLocations();
dismissProgress();
}
}
private void getPages()
{
while(mCursor.moveToNext()){
String pageLocation = get images from database;
gallery_grid_Images[i] = pageLocation;
i++;
}
}
private void setPageLocations(){
for (int i=0;i<gallery_grid_Images.length;i++){
/* Bitmap bitmap = BitmapFactory.decodeFile(gallery_grid_Images[i]);
BitmapDrawable bd = new BitmapDrawable(bitmap);
ImageView imageView = new ImageView(getApplicationContext());
imageView.setImageDrawable(bd);*/
imageLoader.displayImage(gallery_grid_Images[i], imageView,options);
viewFlipper.addView(imageView);
}
}
どんな助けでも大歓迎です。ユニバーサル イメージ ローダーを使用したビューフリッパーの例へのリンクも役立ちます。
ありがとう。
PS:コメント付きのコードでは問題なく動作しますが、画像がたくさんあるので、メモリ不足エラーに遭遇したくありません。
以下はスタックトレースです
03-17 02:37:16.852: E/AndroidRuntime(476): FATAL EXCEPTION: main
03-17 02:37:16.852: E/AndroidRuntime(476): java.lang.NullPointerException
03-17 02:37:16.852: E/AndroidRuntime(476): at com.nostra13.universalimageloader.core.ImageLoader.getImageSizeScaleTo(ImageLoader.java:453)
03-17 02:37:16.852: E/AndroidRuntime(476): at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:214)
03-17 02:37:16.852: E/AndroidRuntime(476): at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:153)
03-17 02:37:16.852: E/AndroidRuntime(476): at com.sofi.magz.networkusage.MagzineReader.setPageLocations(MagzineReader.java:177)
03-17 02:37:16.852: E/AndroidRuntime(476): at com.sofi.magz.networkusage.MagzineReader.access$1(MagzineReader.java:167)
03-17 02:37:16.852: E/AndroidRuntime(476): at com.sofi.magz.networkusage.MagzineReader$SetMagzineReaderTask.onPostExecute(MagzineReader.java:119)
03-17 02:37:16.852: E/AndroidRuntime(476): at com.sofi.magz.networkusage.MagzineReader$SetMagzineReaderTask.onPostExecute(MagzineReader.java:1)
03-17 02:37:16.852: E/AndroidRuntime(476): at android.os.AsyncTask.finish(AsyncTask.java:417)
03-17 02:37:16.852: E/AndroidRuntime(476): at android.os.AsyncTask.access$300(AsyncTask.java:127)
03-17 02:37:16.852: E/AndroidRuntime(476): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
03-17 02:37:16.852: E/AndroidRuntime(476): at android.os.Handler.dispatchMessage(Handler.java:99)
03-17 02:37:16.852: E/AndroidRuntime(476): at android.os.Looper.loop(Looper.java:130)
03-17 02:37:16.852: E/AndroidRuntime(476): at android.app.ActivityThread.main(ActivityThread.java:3683)
03-17 02:37:16.852: E/AndroidRuntime(476): at java.lang.reflect.Method.invokeNative(Native Method)
03-17 02:37:16.852: E/AndroidRuntime(476): at java.lang.reflect.Method.invoke(Method.java:507)
03-17 02:37:16.852: E/AndroidRuntime(476): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-17 02:37:16.852: E/AndroidRuntime(476): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-17 02:37:16.852: E/AndroidRuntime(476): at dalvik.system.NativeStart.main(Native Method)
setpagelocation は 167 で呼び出されます。