安卓相机开发
2016-04-15 本文已影响85人
小王泽哥
1,简要记录问题,当bitmap设置给imagview之后,假如bitmap对象被回收,imagview当时不会有任何问题
但是当页面处于onpause状态之后,imagview会重新申请他需要的bitmap对象,此时会出错。
2,bitemap的旋转代码,获取设备的旋转角度,并进行相应的旋转
public static Bitmap rotatePhotos(Bitmap bitmap, int rotate){
if(bitmap!=null){
Matrix m=new Matrix();
try{
m.setRotate(rotate, bitmap.getWidth() / 2, bitmap.getHeight() / 2);
Bitmap bmp2=Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), m, true);
bitmap.recycle();
bitmap=bmp2;
}catch(Exception ex){
LogUtil.e("tag","出错");
}
}
return bitmap;
}
3,了解发现github上的知名来源项目,stickcamera,在拍完照片之后,会持续写入bitmap到文件再跳转到照片的编辑页面,这个过程是卡顿的用户体验不流畅的,包括最近比较火的应用keep也是一样的实现。最让人感受到费解的是包括足记和keep他们都会在编辑之前将图片写入到文件,编辑之后又将新的图片生成到了文件,这样的方式无非是要减少用户的存储空间
4,足记的拍照页面到编辑页面是瞬间完成的。这种实现方式用bundle传送的方式显然是不可能的,具体如何实现还要具体分析。