调用系统Acitivity获取数据代理
来源:互联网 发布:贵州卫计委网络直报 编辑:程序博客网 时间:2024/06/05 11:08
public abstract class StartActivityForResultDelegate { private Activity mCurrentActivity; private int mReqCode; public StartActivityForResultDelegate(Activity currentActivity, int reqCode){ mCurrentActivity = currentActivity; mReqCode = reqCode; } protected abstract Intent initIntent(); public void startActivityForResult(){ mCurrentActivity.startActivityForResult(initIntent(), mReqCode); } public void onActivityResult(int requestCode, int resultCode, Intent data){ if (requestCode == mReqCode){ if (resultCode == Activity.RESULT_OK){ onResultOk(data); } } } protected void onResultOk(Intent data){ }}
public class PhotoTakeDelegate extends StartActivityForResultDelegate{ public static interface Callback{ void onTook(Uri uri); } private Uri mOutFileUri; private Callback mCallback; public PhotoTakeDelegate(Activity currentActivity, int reqCode){ super(currentActivity, reqCode); mOutFileUri = getOutputImageFileUri("photo_take_" + System.currentTimeMillis() + ".jpg"); } public PhotoTakeDelegate(Activity currentActivity, int reqCode, Uri outFileUri){ this(currentActivity, reqCode); } public PhotoTakeDelegate(Activity currentActivity, int reqCode, String fileName){ this(currentActivity, reqCode); mOutFileUri = getOutputImageFileUri(fileName); } public void setCallback(Callback callback){ mCallback = callback; } @Override protected Intent initIntent() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, mOutFileUri); return intent; } @Override protected void onResultOk(Intent data) { onTook(mOutFileUri); if (mCallback != null){ mCallback.onTook(mOutFileUri); LogUtils.i("photo take callback . uri = " + mOutFileUri.toString() ); } } protected void onTook(Uri uri){ } private Uri getOutputImageFileUri(String fileName){ File mediaStorageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); File imageFile = new File(mediaStorageDir.getPath() + File.separator + fileName); return Uri.fromFile(imageFile); }}
public class ImageCropDelegate extends StartActivityForResultDelegate { public static interface Callback{ void onCrop(Bitmap bm); } private Uri mUri; private Callback mCallback; public ImageCropDelegate(Activity activity, int reqCode, Uri uri){ this(activity, reqCode); mUri = uri; } public ImageCropDelegate(Activity activity, int reqCode){ super(activity, reqCode); } public void setCallback(Callback callback){ mCallback = callback; } public void setUri(Uri uri){ mUri = uri; } @Override protected Intent initIntent() { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(mUri, "image/*");// intent.setType("image/*"); intent.putExtra("crop", "true"); intent.putExtra("aspectX", 0.3);// 裁剪框比例 intent.putExtra("aspectY", 1); intent.putExtra("outputX", 150);// 输出图片大小 intent.putExtra("outputY", 150); intent.putExtra("return-data", true); return intent; } @Override protected void onResultOk(Intent data) { if (data != null){ Bitmap bitmap = data.getParcelableExtra("data"); onCrop(bitmap); if (mCallback != null){ mCallback.onCrop(bitmap); LogUtils.i("image crop callback . bitmap = null : " + (bitmap == null)); } } } protected void onCrop(Bitmap bm){ }}
public class ImageSelectDelegate extends StartActivityForResultDelegate { public static interface Callback{ void onImageSelected(Uri uri); } private Callback mCallback; public ImageSelectDelegate(Activity activity , int reqCode){ super(activity, reqCode); } public void setCallback(Callback callback){ mCallback = callback; } @Override protected Intent initIntent() { Intent selectIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); return selectIntent; } @Override protected void onResultOk(Intent data) { if(data != null) { Uri image = data.getData(); onImageSelected(image); if (mCallback != null){ mCallback.onImageSelected(image); LogUtils.i("image select callback . uri = " + image.toString()); } } } protected void onImageSelected(Uri uri){ }}
1 0
- 调用系统Acitivity获取数据代理
- jsp代理实现ajax跨域调用获取数据
- Android--入门---9---(android 拨号器----调用系统自带的拨号Acitivity)
- [置顶] Acitivity部分生命周期调用顺序
- Android Acitivity之间如何传递数据
- Acitivity 之间如何传递消息(数据)
- Acitivity之间如何传递消息(数据)
- 浅析:Acitivity间数据的传递
- android Acitivity之间的数据传递
- 从acitivity之间的数据传递谈起
- splice系统调用实现的TCP代理
- wpf 用系统代理获取网络文件
- Linux下获取系统代理信息
- 获取设置时间系统调用
- 调用系统图库获取图片
- php curl通过代理获取数据
- Ajax获取代理返回的Json数据
- Python代理脚本获取Json数据
- Basic Concept
- NSAssert
- python try except else finally
- Handler(4)
- Lime, OpenFL + Haxe Cross Platform Development
- 调用系统Acitivity获取数据代理
- Hibernate对同表中存在上下级关联关系的映射处理
- iOS UIScrollView和UITableview
- ArcGIS教程:半变异函数协方差云工具
- strcat 小bug引起的大问题
- 猜数游戏
- C++解析Python返回的列表
- Merge Sorted Array (Java)
- JavaScript用函数传递的几种参数