当我按下按钮接受图片时没有任何反应

时间:2014-11-17 17:52:09

标签: java android eclipse

我制作了一个可以制作和保存照片的课程(ShowPhoto.java)。但是当我点击" V"在我的照片制作者。因此它会生成照片,但是当您验证照片时,应用程序会出错。当我按下此按钮时,应用程序应保存照片。知道我忘了在代码中添加什么吗?

package com.example.photoviewer;

//imports here   

public class FotoMaker extends Activity 

    { 
    private static final String LOG_TAG = "debugger";
    ImageView iv;
   // Uri uriOfPicture;

    static final int REQUEST_TAKE_PHOTO = 1;

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
        { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_pic);

        iv = (ImageView) findViewById(R.id.imageView);
        Button btn = (Button) findViewById(R.id.button1);
        btn.setOnClickListener(new OnClickListener()

        { 


            @Override 
            public void onClick (View v){
                dispatchTakePictureIntent();
                 Log.i(LOG_TAG, "test5");

            } 
        }); 
        }
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {
                Bundle extras = data.getExtras();
                Bitmap imageBitmap = (Bitmap) extras.get("data");
                iv.setImageBitmap(imageBitmap);
            }

        }
    String mCurrentPhotoPath;

    private File createImageFile() throws IOException {
        Log.i(LOG_TAG, "test3");
        // Create an image file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        String imageFileName = "JPEG_" + timeStamp + "_";
        File storageDir = Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_PICTURES);
        File image = File.createTempFile(
            imageFileName,  /* prefix */
            ".jpg",         /* suffix */
            storageDir      /* directory */
        );

        // Save a file: path for use with ACTION_VIEW intents
        mCurrentPhotoPath = "file:" + image.getAbsolutePath();
        return image;
    }



    private void dispatchTakePictureIntent() {


        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        // Ensure that there's a camera activity to handle the intent
        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
            // Create the File where the photo should go
            File photoFile = null;
            try {
                photoFile = createImageFile();
                Log.i(LOG_TAG, "test");
            } catch (IOException ex) {
                // Error occurred while creating the File
                 ex.printStackTrace();
                 Log.i(LOG_TAG, "test1");
            }
            // Continue only if the File was successfully created
            if (photoFile != null) {
                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                        Uri.fromFile(photoFile));
                startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
                Log.i(LOG_TAG, "test2");
            }
        }Log.i(LOG_TAG, "test4");
    }

    }

LogCat:

11-17 21:12:39.960: E/AndroidRuntime(15260): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.example.keyfinder/com.example.photoviewer.FotoMaker}: java.lang.NullPointerException
11-17 21:12:39.960: E/AndroidRuntime(15260):    at com.example.photoviewer.FotoMaker.onActivityResult(FotoMaker.java:61)

0 个答案:

没有答案