如何在Android中裁剪parsing的图像?

我正在parsing一个网站,显示在一个URL中的内容,有些图像在那里。 我想裁剪从网站parsing的图像。 我真的在这方面挣扎,有没有人可以帮助我呢?

我假设你已经从网站上“下载”了图像,并想resize而不是裁剪? 即创build缩略图。

如果是这样,您可以使用以下内容:

// load the origial BitMap (500 x 500 px) Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(), R.drawable.android); int width = bitmapOrg.width(); int height = bitmapOrg.height(); int newWidth = 200; int newHeight = 200; // calculate the scale - in this case = 0.4f float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // createa matrix for the manipulation Matrix matrix = new Matrix(); // resize the bit map matrix.postScale(scaleWidth, scaleHeight); // recreate the new Bitmap Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width, height, matrix, true); // make a Drawable from Bitmap to allow to set the BitMap // to the ImageView, ImageButton or what ever BitmapDrawable bmd = new BitmapDrawable(resizedBitmap); ImageView imageView = new ImageView(this); // set the Drawable on the ImageView imageView.setImageDrawable(bmd); // center the Image imageView.setScaleType(ScaleType.CENTER); 

最好的链接github – > AndroidImageCrop

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); photoPicker(); } private void photoPicker() { Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoPickerIntent.setType("image/*"); startActivityForResult(photoPickerIntent, 1); } private void crop(Uri photoUri) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setData(photoUri); intent.putExtra("outputX", 200); intent.putExtra("outputY", 200); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("scale", true); intent.putExtra("return-data", true); startActivityForResult(intent, RESULT_CROP); } protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); if (resultCode == RESULT_OK) { Uri photoUri = intent.getData(); if (photoUri != null) { Log.i("TAG", "Start Crop!!"); crop(photoUri); } } else if (resultCode == RESULT_CROP) { Toast.makeText(this, "Image crop", Toast.LENGTH_SHORT).show(); } } 

Android联系人pipe理器EditContactActivity使用Intent("com.android.camera.action.CROP")

这是一个示例代码:

 Intent intent = new Intent("com.android.camera.action.CROP"); // this will open all images in the Galery intent.setDataAndType(photoUri, "image/*"); intent.putExtra("crop", "true"); // this defines the aspect ration intent.putExtra("aspectX", aspectY); intent.putExtra("aspectY", aspectX); // this defines the output bitmap size intent.putExtra("outputX", sizeX); intent.putExtra("outputY", xizeY); // true to return a Bitmap, false to directly save the cropped iamge intent.putExtra("return-data", false); //save output image in uri intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); 

然后, startActivityWithResult()知道用户按下OKCancel 。 在第一种情况下,被歪曲的图像将被保存在uri

 <ImageView android:id="@+id/title_logo" android:src="@drawable/logo" android:scaleType="centerCrop" android:padding="4dip"/>