Android本地上传图片、拍照、裁剪
来源:互联网 发布:同志交友软件 编辑:程序博客网 时间:2024/04/30 08:19
话不多说直接上代码
public class account extends AppCompatActivity{ public ImageView user_img; private String fileName = ""; private File tempFile; private Bitmap bitmap; private int crop = 300;// 裁剪大小 private static final int OPEN_CAMERA_CODE = 10; private static final int OPEN_GALLERY_CODE = 11; private static final int CROP_PHOTO_CODE = 12; private View headView; private View view; getYuanBitmap mGetYuanBitmap=new getYuanBitmap (); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate ( savedInstanceState ); setContentView ( R.layout.activity_account ); user_img=(ImageView)findViewById(R.id.user_img); user_img.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder(account.this); // 指定下拉列表的显示数据 final String[] cities = {"拍照", "本地上传"}; // 设置一个下拉的列表选择项 builder.setItems(cities, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { switch (which){ case 0: initFile(); openCamera (); break; case 1: initFile (); openGallery(); break; } } }); builder.show(); } } ); } /** * 创建文件路径 */ public void initFile() { if(fileName.equals("")) { File file = new File ( "/sdcard/pintu/" ); file.mkdir(); fileName = file.getPath () + "user_head_photo.jpg"; tempFile = new File(fileName); } } /** * 调用相机 */ public void openCamera() { Intent intent = new Intent( MediaStore.ACTION_IMAGE_CAPTURE);// 打开相机 intent.putExtra("output", Uri.fromFile(tempFile)); startActivityForResult(intent, OPEN_CAMERA_CODE); } /** * 打开相册 */ public void openGallery() { Intent intent = new Intent(Intent.ACTION_PICK);// 打开相册 intent.setDataAndType( MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*"); intent.putExtra("output", Uri.fromFile(tempFile)); startActivityForResult(intent, OPEN_GALLERY_CODE); } /** * 裁剪方形图片 * @param uri */ public void cropPhoto(Uri uri) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); intent.putExtra("output", Uri.fromFile(tempFile)); intent.putExtra("crop", true); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("outputX", crop); intent.putExtra("outputY", crop); startActivityForResult(intent, CROP_PHOTO_CODE); } /** *返回图片地址 * * */ public String getFileName(){ if (fileName!=null) return fileName; else return null; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == 1) return; switch (requestCode) { case OPEN_CAMERA_CODE: cropPhoto( Uri.fromFile(tempFile)); break; case OPEN_GALLERY_CODE: cropPhoto(data.getData()); break; case CROP_PHOTO_CODE: try { BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2; //合成Bitmap bitmap = BitmapFactory.decodeFile(fileName, options); if (bitmap!=null) { //得到圆形头像 // 这个方法类看我的另一篇文章 http://blog.csdn.net/guang_liang_/article/details/52734930 Bitmap bitmap_photo=mGetYuanBitmap.toRoundBitmap ( bitmap,0 ); user_img.setImageBitmap ( bitmap_photo ); } } catch (Exception e) { e.printStackTrace(); } break; default: break; } super.onActivityResult(requestCode, resultCode, data); }}
0 0
- Android本地上传图片、拍照、裁剪
- Android 相机拍照和本地图片裁剪
- android 拍照裁剪以及本地图片裁剪工具类使用
- Android上传本地图片或者拍照上传
- Android 图片拍照上传、本地上传
- Android拍照或本地图片上传
- Android设置拍照或者上传本地图片
- android 从本地或者拍照上传图片
- Android获取本地图片或拍照上传
- Android 拍照上传和拍照本地显示,拍照剪切上传,选取本地图片剪切上传
- Android拍照,选择图片,裁剪和上传服务器
- 拍照打开本地图库裁剪加上传
- Unity3d本地上传并且裁剪图片-----Android平台
- android实用案例-获取本地图片/拍照 后进行图片裁剪
- Android 拍照 以及从本地选择图片 上传
- Android 调用本地相机拍照并上传图片
- Android 拍照 以及从本地选择图片 上传
- Android开发:相册读取、拍照、图片裁剪和图片上传服务器等功能的实现
- C Primer Plus学习 十 if语句
- Node.js[0] 准备工作
- JSON 轻量级数据交换
- C++ 文件输入输出基础 【网上摘抄,方便查询】
- 视力下降?11张图,测试色彩敏感度,你在第几关阵亡了?
- Android本地上传图片、拍照、裁剪
- Not on FX application thread; currentThread = * 问题的解决
- 笔记3:java数据类型划分
- 22:神奇的幻方/NOI/ 1.8编程基础之多维数组
- maven 创建项目
- 如何拜访陌生客户并及时消除客户的不满
- codevs 1851 越狱
- 设计模式原则——单一职责原则
- POJ 3660 Cow Contest(floyed算法求传递闭包)