调用系统裁剪 并生成图片
2016-02-23 00:00
183 查看
package com.xuganwen.sharesdk; import android.content.Intent; import android.graphics.Bitmap; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageView; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class MainActivity extends AppCompatActivity { private Button btn; private ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=(Button)findViewById(R.id.btn); image=(ImageView)findViewById(R.id.image); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_PICK); //intent.setAction(Intent.ACTION_GET_CONTENT); MainActivity.this.startActivityForResult(intent,100); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case 100: Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(data.getData(), "image/*"); // 下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪 intent.putExtra("crop", "true"); // aspectX aspectY 是宽高的比例 intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); // outputX outputY 是裁剪图片宽高 intent.putExtra("outputX", 150); intent.putExtra("outputY", 150); intent.putExtra("return-data", true); // intent.putExtra("scale", true); //保留比例 startActivityForResult(intent, 3); break; case 3: if (data != null) { /*Bundle extras = data.getExtras(); if (extras != null) { Bitmap bitmap = (Bitmap) extras.get("data"); String path = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); String picUrl = saveAndgetMyBitmap(path, bitmap); setImg(); new MyTask().execute(); }*/ Bundle bundle=data.getExtras(); Bitmap bitmap=(Bitmap)bundle.get("data"); image.setImageBitmap(bitmap); //image.invalidate(); } break; } } public static String saveAndgetMyBitmap(String bitName, Bitmap mBitmap) { File file = null; if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { file = new File(Environment.getExternalStorageDirectory(), bitName + ".jpg"); FileOutputStream fOut = null; try { fOut = new FileOutputStream(file); } catch (FileNotFoundException e) { e.printStackTrace(); } mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fOut); try { fOut.flush(); } catch (IOException e) { e.printStackTrace(); } try { fOut.close(); } catch (IOException e) { e.printStackTrace(); } // File file = new File(path); // path = file.getPath().toString(); } return file.getAbsolutePath().toString(); } }
![](http://static.oschina.net/uploads/space/2016/0223/160336_zOFd_2480847.png)
相关文章推荐
- iOS 获取系统相册全部照片以及照片信息
- android调用系统相机、调用系统相册,调用系统图片裁剪报错的解决方案
- 系统相册和照相机
- 调用系统拍照和相册的集成工具类(包含Popwindow的使用)
- iOS调用系统相册选取图片
- 显示系统相册中某个相簿的照片
- Android 调用系统相册 并回调所选的图片
- 图片保存到系统相册
- 系统相册的多选与单选封装(基于AssetsLibrary)
- 调用系统相机和系统相册,并保存到沙盒中
- Android4.4打开系统相册返回Null问题
- 安卓开发,从相册或者相机中选择一张图片并裁剪,上传和下载。
- iOS调用系统相册、相机 显示中文标题
- iOS中,系统相册的那些事
- Android调用系统相册
- uiwebview 保存图片到系统相册
- Android 调用系统相册选择图片并显示
- Xcode8打开系统相册和摄像头的方法
- Android调用系统相册选择图片,支持小米4云相册
- 利用iOS实现系统相册大图浏览功能详解