android Bitmap的截取和缩放--转 博客分类: android bitmap缩放截取
程序员文章站
2024-03-18 19:12:40
...
有一个任务 显示一张图片的中间地方的图片
1、
什么也不用设 只要固定了imageView的宽和高 就会自动缩放来填充这个imageview
2、截取
一张大图 我要截取其中的部分
Java代码
Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height)
Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height)
例如Java代码
Bitmap bitmap = Bitmap.createBitmap(b, 100, 20, 200, 300);
Bitmap bitmap = Bitmap.createBitmap(b, 100, 20, 200, 300);
从bitmap对象b的(100,20)开始截取宽为200,高为300的部分图像
3、ScaleType
参考:http://www.cnblogs.com/over140/archive/2010/09/19/1830703.html
上面那个虽然实现了 但是又重新生成了一张图片 内存开支有点大 我又找了找 可以用这个
Java代码
iv.setScaleType(ImageView.ScaleType.CENTER);
iv.setScaleType(ImageView.ScaleType.CENTER);
android:scaleType 参数如下
Java代码
matrix
用矩阵来绘图
fitXY
拉伸图片(不按比例)以填充View的宽高
fitStart
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边
fitCenter
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间
fitEnd
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边
center
按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示
centerCrop
按比例放大原图直至等于某边View的宽高显示。
centerInside
当原图宽高小于或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。
matrix
用矩阵来绘图
fitXY
拉伸图片(不按比例)以填充View的宽高
fitStart
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边
fitCenter
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间
fitEnd
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边
center
按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示
centerCrop
按比例放大原图直至等于某边View的宽高显示。
centerInside
当原图宽高小于或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。
4、得到缩放后的图片
Java代码
Bitmap mBitmap = Bitmap.createScaledBitmap(bmp, mScreenWidth, mScreenHeight, true);
Bitmap mBitmap = Bitmap.createScaledBitmap(bmp, mScreenWidth, mScreenHeight, true);
这个方法可以得到自己固定宽和高后的图片 系统会自动缩放并返回
1、
什么也不用设 只要固定了imageView的宽和高 就会自动缩放来填充这个imageview
2、截取
一张大图 我要截取其中的部分
Java代码
Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height)
Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height)
例如Java代码
Bitmap bitmap = Bitmap.createBitmap(b, 100, 20, 200, 300);
Bitmap bitmap = Bitmap.createBitmap(b, 100, 20, 200, 300);
从bitmap对象b的(100,20)开始截取宽为200,高为300的部分图像
3、ScaleType
参考:http://www.cnblogs.com/over140/archive/2010/09/19/1830703.html
上面那个虽然实现了 但是又重新生成了一张图片 内存开支有点大 我又找了找 可以用这个
Java代码
iv.setScaleType(ImageView.ScaleType.CENTER);
iv.setScaleType(ImageView.ScaleType.CENTER);
android:scaleType 参数如下
Java代码
matrix
用矩阵来绘图
fitXY
拉伸图片(不按比例)以填充View的宽高
fitStart
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边
fitCenter
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间
fitEnd
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边
center
按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示
centerCrop
按比例放大原图直至等于某边View的宽高显示。
centerInside
当原图宽高小于或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。
matrix
用矩阵来绘图
fitXY
拉伸图片(不按比例)以填充View的宽高
fitStart
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边
fitCenter
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间
fitEnd
按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边
center
按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示
centerCrop
按比例放大原图直至等于某边View的宽高显示。
centerInside
当原图宽高小于或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。
4、得到缩放后的图片
Java代码
Bitmap mBitmap = Bitmap.createScaledBitmap(bmp, mScreenWidth, mScreenHeight, true);
Bitmap mBitmap = Bitmap.createScaledBitmap(bmp, mScreenWidth, mScreenHeight, true);
这个方法可以得到自己固定宽和高后的图片 系统会自动缩放并返回