2016-12-12 35 views
1

在我的onClick方法中,我調用了兩個新的意圖,一個用於使用相機拍攝照片,另一個用於從庫中選擇圖像。但是,只要我在開始活動之前允許這兩個意圖,彈出允許對話就總是相互交接。Android從畫廊或相機展示選項一起選擇了圖像

Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(takePicture, 0); 

Intent pickPhoto = new Intent(Intent.ACTION_PICK, 
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
startActivityForResult(pickPhoto , 1); 

我會第一時間看到允許選擇從圖庫圖片的選項,然後滑動下來後,然後我會看選項,允許相機。我怎樣才能在一個彈出窗口中顯示它?

回答

2

你可以做以下....

private void showPickImageDialog() { 
    AlertDialog.Builder builderSingle = new AlertDialog.Builder(MainActivity.this); 
    builderSingle.setTitle("Select One Option"); 

    final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
      MainActivity.this, 
      android.R.layout.select_dialog_singlechoice); 
    arrayAdapter.add("Gallery"); 
    arrayAdapter.add("Camera"); 

    builderSingle.setNegativeButton(
      "cancel", 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }); 

    builderSingle.setAdapter(
      arrayAdapter, 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        switch (which) { 
         case 0: 
          Intent pickPhoto = new Intent(Intent.ACTION_PICK, 
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
          startActivityForResult(pickPhoto, 1); 
          break; 

         case 1: 
          Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
          startActivityForResult(takePicture, 0); 
          break; 
        } 

       } 
      }); 
    builderSingle.show(); 
} 

希望這對你的作品!

+0

感謝您的快速回復!這解決了我的問題,謝謝 – JerryKo

+0

@JerryKo高興地幫助!乾杯! –

相關問題