2011-12-13 128 views
0

我无法裁剪放大的图像我正在使用下面的代码缩放图像。任何人都可以帮助我吗?裁剪缩放的图像'Android'

这是代码。

public void selectRandomImage() 
{ 
    Cursor c = getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI, null, null, 
                null, null); 
    if (c != null) { 
    int count = c.getCount(); 
    int position = (int)(Math.random() * count); 
    if (c.moveToPosition(position)) { 
     long id = c.getLong(c.getColumnIndex(Images.Media._ID)); 
     int orientation = c.getInt(c.getColumnIndex(Images.Media.ORIENTATION)); 

     Uri imageUri = Uri.parse(Images.Media.EXTERNAL_CONTENT_URI + "/" + id); 
     Bitmap bitmap; 
     try { 
      bitmap = ImageLoader.loadFromUri(this, imageUri.toString(), 1024, 1024); 
      mImageView.setImageBitmapReset(bitmap, orientation, true); 
     } 
     catch (IOException e) { 
      Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show(); 
     } 
    } 
    c.close(); 
    c = null; 
    return; 
    } 

回答

0

尝试这种::

if (itemx.equalsIgnoreCase("capture")) { 
      try 
      { 
      str_Height_of_crop = i1.getStringExtra("height"); 
      str_Width_of_crop = i1.getStringExtra("width"); 
      /*int_Height_crop = Integer.parseInt(str_Height_of_crop); 
      int_Width_crop = Integer.parseInt(str_Width_of_crop);*/ 
      int_Height_crop=190; 
      int_Width_crop=170; 

      Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      mImageCaptureUri = Uri.fromFile(new File(Environment 
        .getExternalStorageDirectory(), "tmp_avatar_" 
        + String.valueOf(System.currentTimeMillis()) + ".jpg")); 
      intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, 
        mImageCaptureUri); 


       intent.putExtra("return-data", true); 

       startActivityForResult(intent, PICK_FROM_CAMERA); 

      }catch (Exception e) { 
       e.printStackTrace(); 
      } 

rivate void doCrop() { 
     final ArrayList<CropOption> cropOptions = new ArrayList<CropOption>(); 

     Intent intent = new Intent("com.android.camera.action.CROP"); 
     intent.setType("image/*"); 

     List<ResolveInfo> list = getPackageManager().queryIntentActivities(
       intent, 0); 

     int size = list.size(); 

     if (size == 0) { 
      Toast.makeText(this, "Can not find image crop app", 
        Toast.LENGTH_SHORT).show(); 

      return; 
     } else { 
      intent.setData(mImageCaptureUri); 

      /* 
      * intent.putExtra("outputX", 200); intent.putExtra("outputY", 200); 
      */ 

      intent.putExtra("outputX", int_Height_crop); 
      intent.putExtra("outputY", int_Width_crop); 
      intent.putExtra("aspectX", 1); 
      intent.putExtra("aspectY", 1); 
      intent.putExtra("scale", true); 
      intent.putExtra("return-data", true); 

      if (size == 1) { 
       Intent i = new Intent(intent); 
       ResolveInfo res = list.get(0); 

       i.setComponent(new ComponentName(res.activityInfo.packageName, 
         res.activityInfo.name)); 

       startActivityForResult(i, CROP_FROM_CAMERA); 
      } else { 
       for (ResolveInfo res : list) { 
        final CropOption co = new CropOption(); 

        co.title = getPackageManager().getApplicationLabel(
          res.activityInfo.applicationInfo); 
        co.icon = getPackageManager().getApplicationIcon(
          res.activityInfo.applicationInfo); 
        co.appIntent = new Intent(intent); 

        co.appIntent 
          .setComponent(new ComponentName(
            res.activityInfo.packageName, 
            res.activityInfo.name)); 

        cropOptions.add(co); 
       } 

       CropOptionAdapter adapter = new CropOptionAdapter(
         getApplicationContext(), cropOptions); 

       AlertDialog.Builder builder = new AlertDialog.Builder(this); 
       builder.setTitle("Choose Crop App"); 
       builder.setAdapter(adapter, 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int item) { 
           startActivityForResult(
             cropOptions.get(item).appIntent, 
             CROP_FROM_CAMERA); 
          } 
         }); 

       builder.setOnCancelListener(new DialogInterface.OnCancelListener() { 
        @Override 
        public void onCancel(DialogInterface dialog) { 

         if (mImageCaptureUri != null) { 
          getContentResolver().delete(mImageCaptureUri, null, 
            null); 
          mImageCaptureUri = null; 
         } 
        } 
       }); 

       AlertDialog alert = builder.create(); 

       alert.show(); 
      } 
     } 
    } 
+0

感谢ü这么多的响应,但由于是新到Android u能PLZ让我知道在哪里放置相关的“代码” plzzzzzz ..... –

+0

期运用这一点,你可以捕捉图像按照您选择的尺寸将系统相机裁剪下来并在裁剪时放大缩小 –