Android快速SDK(13)拍照裁剪库PhotoGraph【傻瓜模式】
来源:互联网 发布:2017淘宝补单平台 编辑:程序博客网 时间:2024/06/04 19:26
代码:http://download.csdn.net/detail/huangbin95487710/9260081
依赖包模式
完整运行还需要用到以下依赖包
- Android快速SDK(2)View库QuickView
风格:重定义样式无代码
- 属性配置,一般使用默认配置即可
- 配置摄像头模式(横竖屏切换)
- 配置是否裁剪
- 配置圆形裁剪图
- 配置裁剪宽度比例
- 配置同等比例裁剪
- 配置拍照原图压缩
- 配置裁剪4角触摸区域范围
<declare-styleable name="PhotoGraph"> <!-- 屏幕样式 --> <attr name="graph_orientation"> <enum name="landscape" value="0" /> <enum name="portrait" value="1" /> </attr> <!-- 裁剪结果模式 --> <attr name="graph_clip_mode"> <enum name="landscape" value="0" /> <enum name="portrait" value="1" /> <enum name="auto" value="2" /> </attr> <!-- 是否裁剪圆 --> <attr name="graph_iscircle" format="boolean" /> <!-- 裁剪宽比例 --> <attr name="graph_clip_width" format="integer" /> <!-- 裁剪高比例 --> <attr name="graph_clip_height" format="integer" /> <!-- 获取裁剪区域的大小(倍数) --> <attr name="graph_clip_size" format="float" /> <!-- 裁剪框以外的背景 --> <attr name="graph_clip_bg" format="color" /> <!-- 裁剪布局 --> <attr name="graph_layout_id" format="integer" /> <!-- 弹出布局 --> <attr name="graph_popup_layout_id" format="integer" /> <!-- 弹出布局返回按键 --> <attr name="graph_keycode_back" format="boolean" /> <!-- 是否裁剪 --> <attr name="graph_iscrop" format="boolean" /> <!-- 是否同等比例裁剪 --> <attr name="graph_auto_scale" format="boolean" /> <!-- 拍照原图压缩 --> <attr name="graph_fullscreen_compress" format="boolean" /> <!-- 获取4角触摸区域范围 --> <attr name="graph_hysteresis" format="float" /> </declare-styleable>- 默认样式
<style name="DivPhotoGraph"> <item name="graph_orientation">portrait</item> <item name="graph_clip_mode">auto</item> <item name="graph_iscircle">false</item> <item name="graph_clip_width">1</item> <item name="graph_clip_height">1</item> <item name="graph_clip_size">1.5</item> <item name="graph_clip_bg">#80505050</item> <item name="graph_layout_id">@layout/photograph</item> <item name="graph_popup_layout_id">@layout/photograph_pop</item> <item name="graph_keycode_back">true</item> <item name="graph_iscrop">true</item> <item name="graph_auto_scale">true</item> <item name="graph_fullscreen_compress">true</item> <item name="graph_hysteresis">200.0</item> </style>- 代码示例
- 重定义样式
<?xml version="1.0" encoding="utf-8"?><resources> <!-- 重写样式 --> <style name="MyDivPhotoGraph" parent="@style/DivPhotoGraph"> <item name="graph_clip_width">4</item> <item name="graph_clip_height">3</item> <item name="graph_iscircle">true</item> </style> <!-- 重写样式 --> <style name="MyDivPhotoGraph1" parent="@style/DivPhotoGraph"> <item name="graph_iscrop">false</item> </style></resources>- 代码
package cn.whonow.whonow.photograph;import General.CropPic.PhotoGraph;import General.CropPic.Listener.CropListener;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import cn.whonow.whonow.R;/** * 拍照上传 必须实现CropListener接口 * * @author HuangYi QQ:95487710 */public class PhotoGraphActivity extends Activity implements CropListener {private PhotoGraph mPhotoGraph;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test_photograph);Button button1 = (Button) findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// "拍照上传"mPhotoGraph = new PhotoGraph(PhotoGraphActivity.this,PhotoGraphActivity.this);mPhotoGraph.doPopup();}});Button button2 = (Button) findViewById(R.id.button2);button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 自定义样式mPhotoGraph = new PhotoGraph(PhotoGraphActivity.this,R.style.MyDivPhotoGraph, PhotoGraphActivity.this);mPhotoGraph.doPopup(R.id.ll);}});Button button3 = (Button) findViewById(R.id.button3);button3.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// "不裁剪样式"mPhotoGraph = new PhotoGraph(PhotoGraphActivity.this,R.style.MyDivPhotoGraph1, PhotoGraphActivity.this);mPhotoGraph.doPopup(R.id.ll);}});}/** 必须重写 */@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (mPhotoGraph != null) {mPhotoGraph.onActivityResult(requestCode, resultCode, data);}}@Overridepublic void onSucess(String mPath) {// 成功返回SDCARD路径}@Overridepublic void onError(String mError) {// 错误}@Overridepublic void onCancel() {// 取消}}- AndroidManifest.xml添加配置
<application> <!-- ###################拍照上传################### --> <activity android:name="app.general.lib.CropImageActivity" android:configChanges="orientation|keyboardHidden" android:theme="@android:style/Theme.NoTitleBar" /> <!-- ###################拍照上传################### --> </application> <!-- ###################拍照上传################### --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- ###################拍照上传################### -->- 特殊定制布局
- 复制以下的XML文件到目标项目,在保持ID不变下,可任意更改界面
- photograph_pop.xml,photograph.xml
- 效果图
1 0
- Android快速SDK(13)拍照裁剪库PhotoGraph【傻瓜模式】
- Android快速SDK(9)下载库DownLoad【傻瓜模式】
- Android快速SDK(10)地址库Location【傻瓜模式】
- Android快速SDK(8)毛玻璃效果BlurView【傻瓜模式】
- Android快速SDK(15)二维码扫描Scanner【傻瓜模式】
- Android快速SDK(16)摇一摇Shake【傻瓜模式】
- Android快速SDK(18)Tab页面TabPager【傻瓜模式】
- Android快速SDK(7)图像加载库ImageLoader【傻瓜模式】
- Android快速SDK(11)圆弧菜单库PathView【傻瓜模式】
- Android快速SDK(19)录音播放库SoundRecorder【傻瓜模式】
- Android快速SDK(12)文本pdf阅读器PdfViewer【傻瓜模式】
- Android快速SDK(17)左右滑动菜单SlidingMenu【傻瓜模式】
- Android快速SDK(20)视频播放器VideoPlayerE【傻瓜模式】
- android头像选择(拍照,相册,裁剪)
- android头像选择(拍照,相册,裁剪)
- Android拍照和裁剪
- android 拍照+裁剪(解决部分相机拍照角度问题)
- android拍照裁剪得到大图
- ScheduledExecutorService
- 图案打印
- 原来现在常见的显示器不是真 8 位的,而是 6 位的……
- R语言-格式化输出
- [原]支付宝无线支付服务端接入C++
- Android快速SDK(13)拍照裁剪库PhotoGraph【傻瓜模式】
- java向ORACLE插入时间
- 红包算法
- Web 前端攻防
- 数据结构上机测试1:顺序表的应用
- 【拾遗】检测cin输入是否满足类型
- 李在福羽毛球教学经典视频汇总31集
- linux 硬盘使用情况查看
- 自定义打印函数/log打印工具