2012-05-27 45 views
0

我想缩小图像的大小,使其适合我的图像按钮的大小。在这个代码中,我打开了画廊,然后可以选择一个图像。问题是图像不缩小,尽管我在代码中这样说。 为什么这不起作用?为什么我的Android图库的图像不能缩小?

private static final int NEW_WIDTH = 10; 
private static final int NEW_HEIGHT = 10; 

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch(requestCode) { 
    case SELECT_PHOTO: 
     if(resultCode == RESULT_OK){ 
      Uri selectedImage = imageReturnedIntent.getData(); 
      String[] filePathColumn = {MediaStore.Images.Media.DATA}; 

      Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); 
      cursor.moveToFirst(); 

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      String filePath = cursor.getString(columnIndex); 
      cursor.close(); 


      Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath); 
      Bitmap.createScaledBitmap(yourSelectedImage, NEW_WIDTH, NEW_HEIGHT, false); 
      mImageButton.setImageBitmap(yourSelectedImage); 
     } 
    } 
} 
+0

如何使用ImageButton.setScaleType(INT)(请参见http:/ /developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType)? – caspase

回答

1

好吧,我自己解决了这个问题。

相反的:

Bitmap.createScaledBitmap(yourSelectedImage, NEW_WIDTH, NEW_HEIGHT, false); 
mImageButton.setImageBitmap(yourSelectedImage); 

式中:

Bitmap bMapScaled = Bitmap.createScaledBitmap(yourSelectedImage, NEW_WIDTH, NEW_HEIGHT, true); 
mImageButton.setImageBitmap(bMapScaled); 

我发现这篇文章非常有帮助: http://www.higherpass.com/Android/Tutorials/Working-With-Images-In-Android/3/