마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

createscaledBitmap 관련 질문

0 추천
이미지 리사이즈를 위해서 createscaledBitmap을 사용하려 하는데요.

 

(512 x 512) 의 이미지를 (940 x 940) 으로 바꾸려고 하고 있습니다.

drawable 폴더 안에 있는 이미지를 바꾸는건 되는데 핸드폰에 있는 이미지를 이용해서 하려하면 앱 상에서 오류가 납니다.

 

drawable 폴더 안에 넣고 할 경우

Bitmap bmp = BitmapFactory.decodeResources(getResources(), R.drawable.lena);

Bitmap resized = Bitmap.createScaledBitmap(bmp, 940, 940, true);

 

핸드폰에 있는 이미지를 이용해서 할 경우

 

String filepath = Environment.getExternalStorageDirectory().toString() + "DCIM/result1/before/lena.png";

Bitmap bmp = BitmapFactory.decodeFile(filepath);

Bitmap resized = Bitmap.createScaledBitmap(bmp, 940, 940, true);

 

전자의 코드는 되는데 후자의 코드는 앱 실행을 하면 오류가 납니다.
마트상 (290 포인트) 님이 2015년 5월 14일 질문
정확히는 딱 resized 부분에서 오류가 생깁니다.
무슨 오류인지를 알려주세요. 로그 에러메세지를 올려주세요.

1개의 답변

+1 추천
 
채택된 답변
무슨 오류가 나는지는 모르겠지만, 그냥 봤을때는 경로가 잘 못된거 같네요.

실제 파일 경로가 맞는지 확인해보세요.
익명사용자 님이 2015년 5월 14일 답변
마트상님이 2015년 5월 14일 채택됨
파일 경로는 맞습니다.
후자 코딩의 경우 2번째 줄까진 오류없이 앱도 실행되고 그냥 imageview에 띄우는 것도 아무 문제없이 되지만.. resized 부분에서 앱 실행 오류가 발생합니다.
무슨 오류가 발생하나요? 이거는 알려주셔야 최소한 모르겠다는 답변이라도 할 수 있습니다. 로그켓에 나오는 에러 메세지를 올려주세요.
핸드폰에 연동해서 실행을 하는데 app이 예상치 않게 중지되었습니다. 다시 시도해 주세요. 라고 뜹니다.
개발자가 아니신건가요? 로그켓 메세지를 올려주시면 됩니다.. logcat이요.
그건 폰에서 뜨는 메세지구요
로그캣을 올려달라는 말입니다
죄송합니다.
05-14 10:53:36.282  23692-23692/com.example.hyub.prac E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=-1, data=Intent { dat=content://media/external/images/media/66530 }} to activity {com.example.hyub.prac/com.example.hyub.prac.MainActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3219)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3262)
            at android.app.ActivityThread.access$1100(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1252)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4918)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:468)
            at com.example.hyub.prac.MainActivity.onActivityResult(MainActivity.java:74)
            at android.app.Activity.dispatchActivityResult(Activity.java:5506)
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3215)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3262)
            at android.app.ActivityThread.access$1100(ActivityThread.java:138)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1252)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4918)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
bitmap이 null이네요, bmp가 null이니 filepath를 다시 한번 확인해보세요.
알려주셔서 감사합니다!
감사합니다 덕분에 해결되었습니다!
...