2016-11-05 10 views
0

これは、画像を選択したり、カメラで写真を撮るアプリケーションのボックスを示しています。カメラを選択すると写真を撮ることができますが、返品や保存のオプションはありません。私は自分の答えを更新し、活動結果コードを掲示しました。アンドロイド - インテントを選択

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     switch (requestCode) 
     { 
      case 1: 
       if (data != null) 
       { 
        Log.e("TAG", "Only called when a image from gallery is selected"); 
       } 
       else 
       { 
        Log.e("TAG", "Data is null"); 
       } 
       break; 

     } 
    } 
    private void ChooseImage() 
{ 

    // Create gallery intent 
    Intent _intentGallery = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    _intentGallery.setAction(Intent.ACTION_PICK); 
    _intentGallery.putExtra("return-data", true); 

    // startActivityForResult(_intentGallery, 1); 


    // Create camera intent 
    Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

    // Create chooser 
    Intent chooser = Intent.createChooser(galleryIntent, getString(R.string.choose_an_application)); 

    // Create list of gallery intents 
    List<Intent> galleryIntents = new ArrayList<Intent>(); 

    // Add intents to list 
    PackageManager pm = getApplicationContext().getPackageManager(); 
    for (ResolveInfo ri: pm.queryIntentActivities(_intentGallery, PackageManager.MATCH_DEFAULT_ONLY)) 
    { 
     Intent intent = pm.getLaunchIntentForPackage(ri.activityInfo.packageName); 
     intent.setAction(Intent.ACTION_PICK); 
     intent.putExtra("return-data", true); 
     galleryIntents.add(intent); 
    } 

    // Show dialog 
    chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, galleryIntents.toArray(new Parcelable[] {})); 
    startActivityForResult(chooser, 1); 
} 

マニフェストの権限は:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.INTERNET" /> 

答えて

0

あなたはonActivityResultを実装する必要があります。その後、データを取得できます。この場合

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

REQUEST_IMAGE_CAPTUREはあなたがそれを定義されている1であるので、1 にそれを変更することはマニフェストルールuses-featureを忘れないでください。

詳細:https://developer.android.com/training/camera/photobasics.html

関連する問題