2011-10-11 85 views

回答

0

您可以使用Bitmap.createScaledBitmap()來調整圖像大小。 請參閱我的關於Image Processing的文章以獲得一些想法:):https://xjaphx.wordpress.com/learning/tutorials/

+0

您的文章?我可以在哪裏找到它們? – user870380

+0

鏈接將很方便。我認爲你的意思是你的網站,所以我快速瀏覽了http://xjaphx.wordpress.com/tag/image/,但沒有看到關於重新調整大小的任何文章。 – Ben

1

您應該遵循這一點。

http://www.anddev.org/resize_and_rotate_image_-_example-t621.html

下面是這個頁面的代碼。它創建一個矩陣來執行操作(調整大小和旋轉)並應用該矩陣來創建新的BitMap。

你可以在你的按鈕的事件OnClickListener上添加代碼(有一些修改)。

public class bitmaptest extends Activity { 
    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     LinearLayout linLayout = new LinearLayout(this); 

     // 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); 
     // rotate the Bitmap 
     matrix.postRotate(45); 

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

     // add ImageView to the Layout 
     linLayout.addView(imageView, 
       new LinearLayout.LayoutParams(
         LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT 
       ) 
     ); 

     // set LinearLayout as ContentView 
     setContentView(linLayout); 
    } 
} 
相關問題