몇시간전에 질문 올렸던 사람입니다.
결국 폴더로 구분하여 넣는 것은 포기하고, 사람마다 파일명을 일괄 바꿔서 "이니셜_image_1.jpg" 와 같은 형식을 사용하고 있습니다.
그러다가 어느 순간부터 NullPointerException이 발생하였습니다.
로그캣을 뒤져보니
제가 GridView Adapter로 사용하고 있는 클래스에서 오류가 발생했더군요.
ImageGridAdapter.java의 내용입니다.
package com.finaltest;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
public class ImageGridAdapter extends BaseAdapter {
Context context = null;
Bitmap bmp = null;
Options bf = new BitmapFactory.Options();
int[] imageIDs = new int[20];
public ImageGridAdapter(Context context, int[] imageIDs) {
this.context = context;
this.imageIDs = imageIDs;
}
@Override
public int getCount() {
return (null != imageIDs) ? imageIDs.length : 0;
}
@Override
public Object getItem(int position) {
return (null != imageIDs) ? imageIDs[position] : 0;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = null;
if (null != convertView)
imageView = (ImageView)convertView;
else {
bf.inSampleSize = 4;
bf.inPurgeable = true;
bf.inPreferredConfig = Config.RGB_565;
bmp = BitmapFactory.decodeResource(context.getResources(), imageIDs[position], bf);
bmp = Bitmap.createScaledBitmap(bmp, 320, 240, false); << 여기서 NullPointerException 에러 발생.
imageView = new ImageView(context);
imageView.setAdjustViewBounds(true);
imageView.setImageBitmap(bmp);
ImageClickListener imageViewClickListener
= new ImageClickListener(context, imageIDs[position]);
imageView.setOnClickListener(imageViewClickListener);
}
return imageView;
}
}
현재 GridView를 띄우는 자바파일과 Main입니다.
Main에서 ExpandListView 아이템을 가져와서 Grid_image에 누구인지 확인하고 그림파일들을 비교하여 GridView로 출력시키는 것이 목적입니다.
한번 확인해보시고 어디가 잘못 되었는지 알려주시면 감사하겠습니다.
아래는 로그캣 정보입니다.
12-03 11:44:05.006: E/AndroidRuntime(5623): FATAL EXCEPTION: main
12-03 11:44:05.006: E/AndroidRuntime(5623): java.lang.NullPointerException
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:461)
12-03 11:44:05.006: E/AndroidRuntime(5623): at com.finaltest.ImageGridAdapter.getView(ImageGridAdapter.java:47)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.AbsListView.obtainView(AbsListView.java:2461)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.GridView.makeAndAddView(GridView.java:1331)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.GridView.makeRow(GridView.java:331)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.GridView.fillDown(GridView.java:283)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.GridView.fillFromTop(GridView.java:407)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.GridView.layoutChildren(GridView.java:1219)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.AbsListView.onLayout(AbsListView.java:2296)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.View.layout(View.java:14063)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewGroup.layout(ViewGroup.java:4605)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.View.layout(View.java:14063)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewGroup.layout(ViewGroup.java:4605)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.View.layout(View.java:14063)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewGroup.layout(ViewGroup.java:4605)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.View.layout(View.java:14063)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewGroup.layout(ViewGroup.java:4605)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.View.layout(View.java:14063)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewGroup.layout(ViewGroup.java:4605)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1998)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1819)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1116)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4533)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.Choreographer.doFrame(Choreographer.java:525)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.os.Handler.handleCallback(Handler.java:615)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.os.Handler.dispatchMessage(Handler.java:92)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.os.Looper.loop(Looper.java:137)
12-03 11:44:05.006: E/AndroidRuntime(5623): at android.app.ActivityThread.main(ActivityThread.java:4943)
12-03 11:44:05.006: E/AndroidRuntime(5623): at java.lang.reflect.Method.invokeNative(Native Method)
12-03 11:44:05.006: E/AndroidRuntime(5623): at java.lang.reflect.Method.invoke(Method.java:511)
12-03 11:44:05.006: E/AndroidRuntime(5623): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1036)
12-03 11:44:05.006: E/AndroidRuntime(5623): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:803)
12-03 11:44:05.006: E/AndroidRuntime(5623): at dalvik.system.NativeStart.main(Native Method)