2011-10-19 9 views
0

私は自分のアバターを自分で設定したり、ギャラリーから画像を選んだりすることができます。私は他のアプリで、画像を選択した後にユーザーが画像のどの領域をアバターとして使用するかを選択する矩形を描くことができるビューを表示したことがわかりました。 私はこの可能性を私のアプリに含めたいと思います。写真を撮った後、どうすればいいですか?画像を選択してアバターを設定する方法

ありがとうございます!

編集:

私はこれでそれをやろうとしているが、それは代わりにカメラの画像ギャラリーを開きます。

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      cameraIntent.setType("image/*"); 
      cameraIntent.putExtra("crop", "true"); 
      cameraIntent.putExtra("scale", "true"); 
      cameraIntent.putExtra("outputX", 100); 
      cameraIntent.putExtra("outputY", 100); 
      cameraIntent.putExtra("aspectX", 1); 
      cameraIntent.putExtra("aspectY", 1); 
      cameraIntent.putExtra("max-width", 30); 
      cameraIntent.putExtra("max-height", 30); 
      cameraIntent.setAction(Intent.ACTION_GET_CONTENT); 

      startActivityForResult(cameraIntent, IMAGEN_CAMARA);  

答えて

0

これは私がこの機能を使用して、私のアプリケーションの一つで、それを実装する方法です。それは非常に簡単です。

private void doTakePhotoAction() { 
// http://2009.hfoss.org/Tutorial:Camera_and_Gallery_Demo 
// http://stackoverflow.com/questions/1050297/how-to-get-the-url-of-the-captured-image 
// http://www.damonkohler.com/2009/02/android-recipes.html 
// http://www.firstclown.us/tag/android/ 
// The one I used to get everything working: http://groups.google.com/group/android-developers/msg/2ab62c12ee99ba30 

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

//Wysie_Soh: Create path for temp file 
mImageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), 
        "tmp_contact_" + String.valueOf(System.currentTimeMillis()) + ".jpg")); 

intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri); 

try { 
    intent.putExtra("return-data", true); 
    startActivityForResult(intent, PICK_FROM_CAMERA); 
} catch (ActivityNotFoundException e) { 
    //Do nothing for now 
} 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (resultCode != RESULT_OK) { 
    return; 
} 

switch (requestCode) { 

case CROP_FROM_CAMERA: { 
    //Wysie_Soh: After a picture is taken, it will go to PICK_FROM_CAMERA, which will then come here 
    //after the image is cropped. 

    final Bundle extras = data.getExtras(); 

    if (extras != null) { 
     Bitmap photo = extras.getParcelable("data"); 

     mPhoto = photo; 
     mPhotoChanged = true; 
     mPhotoImageView.setImageBitmap(photo); 
     setPhotoPresent(true); 
    } 

    //Wysie_Soh: Delete the temporary file       
    File f = new File(mImageCaptureUri.getPath());    
    if (f.exists()) { 
     f.delete(); 
    } 

    InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    mgr.showSoftInput(mPhotoImageView, InputMethodManager.SHOW_IMPLICIT); 

    break; 
} 

case PICK_FROM_CAMERA: { 
    //After an image is taken and saved to the location of mImageCaptureUri, come here 
    //and load the crop editor, with the necessary parameters (96x96, 1:1 ratio) 

    Intent intent = new Intent("com.android.camera.action.CROP"); 
    intent.setClassName("com.android.camera", "com.android.camera.CropImage"); 

    intent.setData(mImageCaptureUri); 
    intent.putExtra("outputX", 96); 
    intent.putExtra("outputY", 96); 
    intent.putExtra("aspectX", 1); 
    intent.putExtra("aspectY", 1); 
    intent.putExtra("scale", true); 
    intent.putExtra("return-data", true);    
    startActivityForResult(intent, CROP_FROM_CAMERA); 

    break; 

} 
} 

}

それが役に立てば幸い:)

+0

私はそれを試してみたが、作物のクラスを見つけることがないようなので、それは私に例外を与えます... – Alex

関連する問題