现在很多开发者在裁图的时候还是使用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 android.view.GLES20Canvas.clipPath(GLES20Canvas.java: 413 ) at com.android.camera.HighlightView.draw(HighlightView.java: 101 ) at com.android.camera.CropImageView.onDraw(CropImage.java: 783 )
这个是由于在4.0系统上默认启用了硬件加速,而这些手机上硬件加速后 不支持某些绘图函数导致的。 只需要关闭裁图Activity的硬件加速功能即可。在activity xml文件中设置 android:hardwareAccelerated=”false” 即可。
转载: http://blog.chengyunfeng.com/?p=476#ixzz31JgW5wVI

更多相关文章

  1. Android消息处理系统——Looper、Handler、Thread
  2. 分析Android 根文件系统启动过程(init守护进程分析)
  3. 通过广播Intent控制Android系统自带的音乐播放器
  4. Android系统升级全流程
  5. 在Ubuntu16.04上下载并编译Android内核源代码
  6. Android 根文件系统启动过程(init进程 详细分析)
  7. Android输入子系统之启动过程分析
  8. Android中系统状态栏的隐藏和显示
  9. 从Android 8.0源码的角度剖析Android系统启动过程(1)

随机推荐

  1. 做出这道题,说明你很有机会进入 Google
  2. 数据结构与算法——2-3树
  3. 花了 2 亿多,等了近 2 年,结果连个可用的网
  4. 剑指 offer 第一题: 二维数组中的查找
  5. 算法科普:有趣的游程编码
  6. Android(安卓)BLE开发小记
  7. 数据结构与算法——2-3-4树
  8. 图解剑指 offer 第二题: 替换空格
  9. 【轻松一刻】生活中用过的那些高级算法知
  10. 算法科普:有趣的霍夫曼编码