当前位置: 代码迷 >> Android >> 安卓bit地图怎么缩放到指定大小,如果大小不够,则放大,不考虑失贞
  详细解决方案

安卓bit地图怎么缩放到指定大小,如果大小不够,则放大,不考虑失贞

热度:97   发布时间:2016-04-28 04:16:42.0
安卓bitmap如何缩放到指定大小,如果大小不够,则放大,不考虑失贞
我做了一个 照相功能,跟从相册里面去相片的功能,现在我像不管是照相的还是从相册选择,在imageview里面都是400*400的,如果图片小,就放大,如果图片大就缩小

public  Bundle CameraResult(int requestCode, int resultCode, Intent data,ContentResolver resolver) {
/**
 * 因为两种方式都用到了startActivityForResult方法, 这个方法执行完后都会执行onActivityResult方法,
 * 所以为了区别到底选择了那个方式获取图片要进行判断,
 * 这里的requestCode跟startActivityForResult里面第二个参数对应
 */
 byte[] mContent=null;
 Bitmap myBitmap=null;
if (requestCode == Picther) {
try {
if (data == null) {
return null;
}
// 获得图片的uri
Uri originalUri = data.getData();
// 将图片内容解析成字节数组
mContent = CameraDlg.readStream(resolver.openInputStream(Uri
.parse(originalUri.toString())));
// 将字节数组转换为ImageView可调用的Bitmap对象
myBitmap = CameraDlg.getPicFromBytes(mContent, null);
// //把得到的图片绑定在控件上显示
// CameraImg.setImageBitmap(myBitmap);
Matrix matrix = new Matrix();
matrix.postScale(0.3f, 0.3f);
Bitmap temp = Bitmap
.createBitmap(myBitmap, 0, 0, myBitmap.getWidth(),
myBitmap.getHeight(), matrix, true);
myBitmap = temp;
mContent = CameraDlg.Bitmap2Bytes(myBitmap);

} catch (Exception e) {
System.out.println(e.getMessage());
}

} else if (requestCode == Camera) {
try {
// super.onActivityResult(requestCode, resultCode, data);
Bundle extras = data.getExtras();
myBitmap = (Bitmap) extras.get("data");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
myBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
mContent = baos.toByteArray();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



}
Bundle bundle = new Bundle();
bundle.putByteArray(getByte, mContent);
bundle.putParcelable(getBitMap, myBitmap);
return bundle;
}

这是我弄的,但是那个缩小成固定的 不会弄,也不知道怎么放大
------解决方案--------------------
		Bitmap source = ...;
Bitmap target = Bitmap.createBitmap(400, 400, source.getConfig());
Canvas canvas = new Canvas(target);
canvas.drawBitmap(source, null, new Rect(0, 0, target.getWidth(), target.getHeight()), null);
  相关解决方案