2012-06-07 101 views
4

我使用ImageView裁剪位圖。 一旦它被裁剪,我想獲得裁剪圖像,但我得到原來的相同。 有沒有辦法只得到圖像的可見部分?從ImageView獲取裁剪圖像

ImageView iv = new ImageView(this);       
iv.setImageBitmap(OriginalBitmap); 
iv.setScaleType(ScaleType.CENTER_CROP); 
Bitmap CroppedBitmap = ((BitmapDrawable) iv.getDrawable()).getBitmap(); 

CroppedBitmap的值與OriginalBitmap一樣。我怎樣才能得到裁剪的?

+0

位圖CroppedBitmap = Bitmap.createBitmap(originalbitmap,bitmap.getWidth()/ 2 - bitmap.getHeight()/2, 0, bitmap.getWidth()/ 2 + bitmap.getHeight()/ 2, bitmap.getHeight() ); – Aerrow

+0

我用這個得到了什麼?我的OriginalBitmap減少到一半? – Ton

+0

您的確切需求是什麼,您必須裁剪哪個尺寸 – Aerrow

回答

0

作物該圖像這下面的代碼200x200的

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

    iv.setImageDrawable(bmd); 
+0

謝謝,但圖片失去了比例。它變形。我需要保持像ImageView.setScaleType(ScaleType.CENTER_CROP)這樣的比例。 – Ton

1

example作品我 iv.setDrawingCacheEnabled(true); Bitmap croppedBitmap = iv.getDrawingCache()