【问题标题】:cropping an image which is zoomed 'Android'裁剪缩放“Android”的图像
【发布时间】:2011-12-13 11:12:45
【问题描述】:

我无法裁剪已缩放的图像我正在使用以下代码来缩放图像。谁能帮帮我?

这是代码。

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;
  }

【问题讨论】:

    标签: android crop zooming


    【解决方案1】:

    试试https://github.com/biokys/cropimage可能对你有帮助。

    一切顺利

    【讨论】:

      【解决方案2】:

      试试这个 ::

      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();
                  }
              }
          }
      

      【讨论】:

      • 非常感谢您的回复,但是作为 android 新手,您可以告诉我在哪里放置相关的“代码”plzzzzzz.....
      • 使用它,您可以通过系统相机以您选择的尺寸裁剪图像并在裁剪时放大缩小
      猜你喜欢
      • 2013-07-18
      • 2016-08-29
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 2013-02-15
      • 1970-01-01
      • 2015-04-20
      相关资源
      最近更新 更多