0
A
回答
0
你可以在代码中做到这一点,如果图像被调整了,看起来不正确,或者你只是想更多地控制旋转发生的事情。
首先获得设备的宽度和高度:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
然后你就可以使用这些信息来调整图像大小。
您可以设置o.inJustDecodeBounds = true以在不加载图像的情况下获取图像大小。如果图像很大,您可以调整它的大小。下面的示例代码。
private Bitmap getBitmap(String path) {
Uri uri = getImageUri(path);
InputStream in = null;
try {
final int IMAGE_MAX_SIZE = 1200000; // 1.2MP
in = mContentResolver.openInputStream(uri);
// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(in, null, o);
in.close();
int scale = 1;
while ((o.outWidth * o.outHeight) * (1/Math.pow(scale, 2)) >
IMAGE_MAX_SIZE) {
scale++;
}
Log.d(TAG, "scale = " + scale + ", orig-width: " + o.outWidth + ",
orig-height: " + o.outHeight);
Bitmap b = null;
in = mContentResolver.openInputStream(uri);
if (scale > 1) {
scale--;
// scale to max possible inSampleSize that still yields an image
// larger than target
o = new BitmapFactory.Options();
o.inSampleSize = scale;
b = BitmapFactory.decodeStream(in, null, o);
// resize to desired dimensions
int height = b.getHeight();
int width = b.getWidth();
Log.d(TAG, "1th scale operation dimenions - width: " + width + ",
height: " + height);
double y = Math.sqrt(IMAGE_MAX_SIZE
/(((double) width)/height));
double x = (y/height) * width;
Bitmap scaledBitmap = Bitmap.createScaledBitmap(b, (int) x,
(int) y, true);
b.recycle();
b = scaledBitmap;
System.gc();
} else {
b = BitmapFactory.decodeStream(in);
}
in.close();
Log.d(TAG, "bitmap size - width: " +b.getWidth() + ", height: " +
b.getHeight());
return b;
} catch (IOException e) {
Log.e(TAG, e.getMessage(),e);
return null;
}
相关问题
- 1. 缩放和旋转imageview
- 2. ImageView的移动缩放时/旋转
- 3. 在ScrollView中旋转缩放ImageView?
- 4. Android imageView放大,缩小和旋转
- 5. android ImageView自动缩放
- 6. 自动缩放和旋转图像
- 7. 旋转和自动缩放图片
- 8. 移动,缩放和旋转ImageView的OnTouch不工作
- 9. 使用ImageView旋转Android活动将ImageView缩小为1px
- 10. @keyframes动画(旋转)和:悬停(缩放)
- 11. 缩放,旋转和拖动UIImageView
- 12. 用缩放旋转动画图片
- 13. iPhone“移动和缩放”...并旋转?
- 14. 拖动,缩放和旋转多个UIImageviews
- 15. CSS3 - 动画缩放/旋转悬停
- 16. 用动画旋转和缩放UIImageView
- 17. 缩放或旋转移动浏览器
- 18. 缩放,旋转与UIGestureRecognizer同时移动
- 19. css动画缩放并同时旋转
- 20. Android ImageView缩放,旋转,位置变化概率
- 21. 捏缩放和2个手指旋转Android中的ImageView
- 22. 旋转ImageView的动画
- 23. 缩放和旋转点阵
- 24. 缩放和旋转UIImageView
- 25. JavaScript图片旋转/缩放
- 26. 旋转后缩放图像
- 27. 旋转UIImageView,然后缩放
- 28. MKMapView旋转iOS6缩放
- 29. Java Swing旋转和缩放
- 30. 旋转QPixmap无缩放
集imageview的宽度参数match_parent和scaleType到fitXY –
它伸展我的形象 – user1619306
如果你的规模型行不通的,因为你要保持纵横比,看看此http://开发商.android.com/reference/android/widget/ImageView.ScaleType.html如果这也不起作用,你将不得不自己做一些缩放;) –