1번파일에서 버튼을 누르면
png = (Button)findViewById(R.id.png);
png.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(ImageEdit.this,MakePng.class);
startActivityForResult(intent, MAKEPNG);
}
}); 이렇게 버튼을 누르면 다른 액티비티가 호출되게 하고있는데요
Result 함수는
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != RESULT_OK) {
return;
} else if (requestCode == CROP_FROM_ALBUM && resultCode == RESULT_OK)
{
final Bundle extras = data.getExtras();
if(extras != null)
{
Bitmap photo = extras.getParcelable("data");
imageV.setImageBitmap(photo);
}
// 임시 파일 삭제
File f = new File(CameraPR.uri.getPath());
if(f.exists())
{
f.delete();
}
}else if (requestCode == PICK_FROM_ALBUM && resultCode == RESULT_OK) {
try{
Uri uri = data.getData();
Cursor c = getContentResolver().query(Uri.parse(uri.toString()), null, null, null, null);
c.moveToNext();
String imgPath = c.getString(c.getColumnIndex(MediaStore.MediaColumns.DATA));
Intent i = new Intent(this,ImageEdit.class);
i.putExtra("imgPath", imgPath);
startActivity(i);
}catch (Exception e) {
e.printStackTrace();
}
}else if(requestCode == MAKEPNG && resultCode == RESULT_OK)
{
try{
Uri uri = data.getData();
Cursor c = getContentResolver().query(Uri.parse(uri.toString()), null, null, null, null);
c.moveToNext();
String pngPath = c.getString(c.getColumnIndex(MediaStore.MediaColumns.DATA));
Intent i = new Intent(ImageEdit.this,MakePng.class);
i.putExtra("pngPath", pngPath);
startActivity(i);
}catch (Exception e) {
e.printStackTrace();
}
}
}이렇게 했습니다 두번째 엘스문이 제가 구현할려고하는 부분이구요
다음 2번파일에서 이렇게 값을 받습니다.
ImageView MakePng = (ImageView) findViewById(R.id.pngview);
Intent intent = getIntent();
Bundle extras = intent.getExtras();
String pngPath = extras.getString("pngPath");
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
Bitmap bmp = BitmapFactory.decodeFile(pngPath, options);
Bitmap resized = Bitmap.createScaledBitmap(bmp, width, height, true);
MakePng.setImageBitmap(resized);
로그캣은
04-02 13:34:30.365: E/AndroidRuntime(1202): FATAL EXCEPTION: main
04-02 13:34:30.365: E/AndroidRuntime(1202): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.CameraPR/com.CameraPR.MakePng}: java.lang.NullPointerException
04-02 13:34:30.365: E/AndroidRuntime(1202): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
04-02 13:34:30.365: E/AndroidRuntime(1202): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-02 13:34:30.365: E/AndroidRuntime(1202): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-02 13:34:30.365: E/AndroidRuntime(1202): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-02 13:34:30.365: E/AndroidRuntime(1202): at android.os.Handler.dispatchMessage(Handler.java:99)
04-02 13:34:30.365: E/AndroidRuntime(1202): at android.os.Looper.loop(Looper.java:123)
04-02 13:34:30.365: E/AndroidRuntime(1202): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-02 13:34:30.365: E/AndroidRuntime(1202): at java.lang.reflect.Method.invokeNative(Native Method)
04-02 13:34:30.365: E/AndroidRuntime(1202): at java.lang.reflect.Method.invoke(Method.java:507)
04-02 13:34:30.365: E/AndroidRuntime(1202): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-02 13:34:30.365: E/AndroidRuntime(1202): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-02 13:34:30.365: E/AndroidRuntime(1202): at dalvik.system.NativeStart.main(Native Method)
04-02 13:34:30.365: E/AndroidRuntime(1202): Caused by: java.lang.NullPointerException
04-02 13:34:30.365: E/AndroidRuntime(1202): at com.CameraPR.MakePng.onCreate(MakePng.java:33)
04-02 13:34:30.365: E/AndroidRuntime(1202): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-02 13:34:30.365: E/AndroidRuntime(1202): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
04-02 13:34:30.365: E/AndroidRuntime(1202): ... 11 more
Intent intent = new Intent(ImageEdit.this,MakePng.class);
intent.putExtra("pngPath", "실제경로"); // 이부분 빼먹으신것 같네요
startActivityForResult(intent, MAKEPNG);