您的位置:首页 > 移动开发 > Android开发

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();
}
}







                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: