现在很多开发者在裁图的时候还是使用com.android.camera.action.CROP 来调用 startActivity()。 这不是个好主意。
任何不是依android开头的Action 名称都不是标准的。依
com.android 开头的只是Android 内部应用之间的私有Action。 比如这个裁图的是Android系统默认相机提供的功能,很多第三方Rom会替换系统的某一个App。
如果一个第三方Rom使用了自己的相机程序替代了系统默认的,并且没有提供com.android.camera.action.CROP 这个Action,则您的应用就会崩溃了。
所以当您需要裁图功能的时候,可以像我一样从Android 相机代码中摘出这部分代码,或者使用别人摘好的代码即可。
下面是一些不错的可用裁图项目:
- https://github.com/lvillani/android-cropimage
- https://github.com/biokys/cropimage
- https://github.com/MMP-forTour/cropimage (forked from the above one)
- https://github.com/dtitov/pickncrop
值得注意的是,如果您在某些4.0手机上发现如下错误信息:
1
2
3
4
|
java.lang.UnsupportedOperationException
at 413 )
at 101 )
at 783 )
|
这个是由于在4.0系统上默认启用了硬件加速,而这些手机上硬件加速后 不支持某些绘图函数导致的。 只需要关闭裁图Activity的硬件加速功能即可。在activity xml文件中设置
android:hardwareAccelerated=”false” 即可。