2011-10-10 42 views
0

嗨我有這個按鈕,當我點擊它時,我想啓動一個Complete Action Using窗口,這將允許我選擇相機&圖庫。Android完成操作使用

有沒有一種更容易的方法來實現這一點,而不是創建一個對話框。

回答

2
AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setMessage(
        context.getString(R.string.Select_an_Option_to_add_Photo)) 
        .setCancelable(true) 
        .setPositiveButton(context.getString(R.string.Camera), 
          new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
            try { 
             Intent action = new Intent(
               "android.media.action.IMAGE_CAPTURE"); 
             action.putExtra(
               MediaStore.EXTRA_OUTPUT, 
               MediaStore.Images.Media.EXTERNAL_CONTENT_URI 
                 .toString()); 
             startActivityForResult(action, 8); 
            } catch (Exception e) { 
             // TODO Auto-generated catch block 
             e.printStackTrace(); 
            } 
           } 

          }) 
        .setNegativeButton(context.getString(R.string.Gallery), 
          new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
            dialog.cancel(); 

            try { 
             Intent photoPickerIntent = new Intent(
               Intent.ACTION_GET_CONTENT); 
             photoPickerIntent.setType("image/*"); 
             startActivityForResult(photoPickerIntent, 1); 
            } catch (Exception e) { 
             // TODO Auto-generated catch block 
             e.printStackTrace(); 
            } 
           } 
          }); 
      alert = builder.create(); 

現在

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

     super.onActivityResult(requestCode, resultCode, data); 

     if (resultCode == RESULT_OK && requestCode == 8) { 

      Bitmap photoBitMap = (Bitmap) data.getExtras().get("data"); 

      Bitmap usableBMP = Bitmap.createScaledBitmap(photoBitMap, 68, 80, 
        true); 
//This is my ImageView Object   
cameraButton.setImageBitmap(usableBMP); 
      cameraButton.setScaleType(ScaleType.CENTER_INSIDE); 
     } else if (resultCode == RESULT_OK) { 
      Uri chosenImageUri = data.getData(); 
      try { 
//Here I scale my Bitmap as desired 
       photoBitMap = Media.getBitmap(this.getContentResolver(), 
         chosenImageUri); 
       Bitmap usableBMP = Bitmap.createScaledBitmap(photoBitMap, 68, 
         80, true); 

//this is my ImageView Object 
       cameraButton.setImageBitmap(usableBMP); 
       cameraButton.setScaleType(ScaleType.CENTER_INSIDE); 
      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

    } 
+0

這是另一種方式,你可以很容易地達到理想的 –

+0

感謝Arpit的解決方案! – lemon