调用系统裁剪 并生成图片
来源:互联网 发布:淘宝签署开店无法同意 编辑:程序博客网 时间:2024/05/21 03:28
工作日志记录:在做到客户端用户切换头像的时候会使用到这个功能,调用系统的相册,选择相册内的图片然后裁剪图片
惯例上图:
代码:
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();
}
}
- 调用系统裁剪 并生成图片
- 调用系统裁剪 并生成图片
- 调用Android系统相册并裁剪图片
- Android调用系统图库并裁剪图片
- Android调用系统图库并裁剪图片
- 调用系统相册选取照片并使用系统裁剪图片
- Android 调用系统的照相,浏览图片,转存并裁剪!
- Android 调用系统的照相,浏览图片,转存并裁剪!
- 实践--调用系统相册,裁剪图片并设置圆形显示
- 使用Android系统调用裁剪图片并保存
- Android调用系统图库和相机获取图片并裁剪
- 调用系统的裁剪功能裁剪图片
- 图片裁剪 调用系统裁剪intent
- 调用系统图片裁剪器
- Android中调用系统相机、系统相册来获取图片,并裁剪图片。
- 拍照并裁剪,调用图库选择图片并裁剪
- Android调用相机实现拍照并裁剪图片,调用手机中的相册图片并裁剪图片
- android调用系统相机拍照并裁剪
- Java 网络编程
- 不找C++的工作也要学C++
- python编程1-win7上运行python
- volatile变量与普通变量的区别
- Struts2实现文件上传和下载
- 调用系统裁剪 并生成图片
- 监控redis命令--monitor--redis调试
- JavaScript跨域总结与解决办法
- 菜鸟的大三之旅/Python1
- Spring Security 使用总结
- PAT 甲级
- mac 安卓环境移植相关文章记录
- 解决JS(Vue)input[type='file'] change事件无法上传相同文件的问题
- 栈简单介绍-《数据结构与算法》