android record
2015-08-02 15:40
417 查看
<span style="font-family: Arial, Helvetica, sans-serif;">1. Bitmap photo = extras.getParcelable("data");</span>
Drawable drawable = new BitmapDrawable(null, photo);
2. 在Activity或者组件之前传递信息时,一般采用intent绑定bundle的方式传值,但在使用过程中需要注意的是不要用bundle传递大容量数据,最大1M。
用传递Uri方法:
<pre style="font-family: Menlo; font-size: 12pt; background-color: rgb(255, 255, 255);"><pre name="code" class="java">/** * 裁剪图片方法实现 * @param uri */ public void startPhotoZoom(Uri uri) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); // crop=true是设置在开启的Intent中设置显示的VIEW可裁剪 intent.putExtra("crop", "true"); // aspectX aspectY 是宽高的比例 intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); // outputX outputY 是裁剪图片宽高 intent.putExtra("outputX", 300); intent.putExtra("outputY", 300); intent.putExtra("return-data", false);//注意第二个参数为false,小图片用true直接传图片数据 startActivityForResult(intent, REQUESTCODE_CUTTING); }
<pre name="code" class="java">@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case REQUESTCODE_PICK:// 直接从相册获取 try { startPhotoZoom(data.getData()); } catch (NullPointerException e) { e.printStackTrace();// 用户点击取消操作 } break; case REQUESTCODE_TAKE:// 调用相机拍照 File temp = new File(Environment.getExternalStorageDirectory() + "/MeasureMe/" + IMAGE_FILE_NAME); startPhotoZoom(Uri.fromFile(temp)); break; case REQUESTCODE_CUTTING:// 取得裁剪后的图片 if (data != null) { setPicToView(data); } break; } }
<pre name="code" class="java">/** * 保存裁剪之后的图片数据 * @param picdata */ private void setPicToView(Intent picdata) { //照片的原始资源地址 Uri uri = picdata.getData(); //Bundle extras = picdata.getExtras();//如果上面参数为true,表示为小图片,用这一句直接得到图片数据 if (uri != null) { // 取得SDCard图片路径做显示 //Bitmap photo = extras.getParcelable("data"); Bitmap photo = imageUtil.decodeSampledBitmapFromFile(fileUtil.getRealPathFromURI(uri, getActivity()), 0, 0); Drawable drawable = new BitmapDrawable(null, photo); urlpath = HeadPhotoUtil.saveFile(getActivity(), "temphead.jpg", photo); user_head.setImageDrawable(drawable); // 新线程后台上传服务端 //pd = ProgressDialog.show(getActivity(), null, "Saving..."); //new Thread(uploadImageRunnable).start(); } }
相关文章推荐
- [深入理解Android卷一全文-第四章]深入理解zygote
- android基础之IntentFilter匹配规则与隐式启动Activity
- Android播放音频的两种方式
- Android之——Service总结
- 关于开发Android应用时写从图库选择头像功能时遇到的一些问题。
- 【Android多媒体】Android5.0 NuPlayer多媒体框架【1】
- Android Activity的探讨——入门
- Android Studio 设置项目Module编码,解决Android Studio项目运行时乱码问题
- Android-selector背景选择器
- android 键值(input)
- android studio使用百度SDK开发百度地图应用中遇到的问题汇总
- android 显示和分辨率区别
- Android学习笔记之AIDL
- Android 源码编译出错汇总
- android开发之Toast的多种应用
- android开发之Toast的多种应用
- android开发之Toast的多种应用
- android开发之Toast的多种应用
- Android中自定义样式与View的构造函数中的第三个参数defStyle的意义
- android 内存泄露