我在一个Android应用程序,它拍照,它作物和做一些额外的东西的中间。 我希望做我自己的种植制度 ,但是当我在不同的地方测试问题就来了。 图片显示在某些情况下旋转,而在其他不正确裁剪(像他们周围有余量(看到原始照片的额外空间)左右)。
更多关于这一点, 我已经使用意图考虑 。 这将释放我从拍照疯狂,裁剪,并会增加一个有趣的“摆脱库”选项,我还没有实现。 作物意图可能无法在每一个Android的 (因为它带有香草相机应用程序,某些设备根本没有的话),所以外部库应该是我的路了。
但是,我用的作物采取的方式和照片是“自动”,即:单一按钮了一个正方形图片(从相机的方观点),同时被裁剪(和一些后期处理过),而不发出的用户,我已经看到不工作的方式作物库(他们打开一个新的活动)。
现在问题来了: 它会更好离开工作意图(和/或外部库),并重新考虑应用程序的逻辑,还是坚持目前的代码,并为他们出现(在某些旋转做边缘的情况下修改设备,而不能在其他作物不同,等等)?
PD:我知道这个问题可能不如发展,紧他人(有些人会说:不!行代码>无SO),但它确实是一件关系到编码一样,所以我觉得没有更好的地方问问吧。
Facebook的和Instagram已成功用自己的库或第三方代码做了。 在已经在自己的种植库开始工作,我建议你把它所有的方式,模棱两可的案件,最佳化和变通方法将在那里,但毫无疑问,你会在控制。 例如,你所提到的定位问题可以这样处理:
orientationColumnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.ORIENTATION);
cursor.getInt(orientationColumnIndex)
if(orient == 90 || orient == 180 || orient == 270 ){
Matrix matrix = new Matrix();
matrix.postRotate(orient);
result = Bitmap.createBitmap(result, 0, 0, 4*screenWidth/15, 4*screenWidth/15, matrix, true);
}
使用裁剪默认的Android的意图,如你所说,心不是很可靠的广泛潜在用户群提供的应用程式。
只是开源/第三方作物库的说明-你应该看看在源,并确保他们使用的不是农作物的意图 (例如,com.android.camera.action.CROP)作为CommonsWare这里所指出的,在他乐于助人博客文章: http://commonsware.com/blog/2013/01/23/no-android-does-not-have-crop-intent.html
我一直在GitHub上评估不同作物库/开源,其中一些正在使用的作物意图。
这当然,假定您关心修剪应在所有的Android设备工作:)