2011-10-11 82 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); 
    } 
} 
相关问题