`
yuxiaolongwin
  • 浏览: 29898 次
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Android 裁剪图片

阅读更多

1.android的图片剪裁

       Intent intent = new Intent("com.android.camera.action.CROP");
        
        //要裁剪的图片
        File file = new File(Environment.getExternalStorageDirectory(), "/Camera.png");
    	Uri uri = Uri.fromFile(file);
    	intent.setDataAndType(uri, "image/*");
    	//指定剪裁的比例,若不设定,则可以任意宽度和高度
//    	intent.putExtra("aspectX", 1);
//    	intent.putExtra("aspectY", 1);
    	File outFile = new File(Environment.getExternalStorageDirectory(), "/yu.png");//设置裁剪好后保存的图片位置
    	//设置输出的图片的宽度和高度,注意会强行设置成该大小
//    	intent.putExtra("outputX", 100);
//    	intent.putExtra("outputY", 100);
    	intent.putExtra("output", Uri.fromFile(outFile));
//    	intent.putExtra("return-data", true);//好像不设置也可以
    	startActivity(intent);
   

2.调用android的选择图片

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
//或者 intent.setAction(Intent.ACTION_PICK);
 

返回的是Uri,类似   content://media/external/images/media/9379
根据Uri查找文件所在路径

ContentResolver contentResolver = getContentResolver();
Cursor cursor = null;
String[] proj = new String[]{android.provider.MediaStore.Image.Media.DATA};
cursor = contentResolver.query(uri, proj, null, null, null);
cursor.moveToFirst();
        
int index = cursor.getColumnIndex(Media.DATA);
String path = cursor.getString(index);
String fileType = path.substring(path.lastIndexOf(".") + 1);//文件类型 jpg, gif, jpeg, png, bmp
if(cursor != null){
	cursor = null;
}
 

此时的path就是所选择的图片所在的SD卡的位置,如  /storage/sdcard0/DCIM/Camera/1352891866908.jpg

 

3. 请求系统内部拍照功能

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//android.media.action.IMAGE_CAPTURE
    	File temp = new File(Environment.getExternalStorageDirectory(), "temp.png");
    	intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(temp));
    	startActivityForResult(intent, 1);

 注意:返回的时候,只有选择图片的返回的  intent.getData不为空,请求相机和请求裁剪该数据都为空,因此才放置临时文件。

 

分享到:
评论

相关推荐

    Android裁剪图片为圆形图片Demo

    这个"Android裁剪图片为圆形图片Demo"就是实现这一功能的一个实例。以下我们将详细介绍如何在Android中裁剪图片为圆形,并提供相关的编程知识点。 1. **圆角Bitmap** - 在Android中,我们可以通过`BitmapShader`类...

    android裁剪图片

    以上就是关于Android裁剪图片功能的一些基本知识。在实际开发中,可能还会涉及更多细节,如图片加载库(如Glide或Picasso)的使用、裁剪参数的设置等。希望这个概述能为你提供一个开始探索Android图片裁剪的起点。

    Android裁剪图片终极解决方案

    在Android开发中,图片裁剪是一项常见的功能,用于用户选择照片、自定义头像或进行图像编辑等场景。本文将深入探讨如何实现Android大图片裁剪的终极解决方案,结合提供的资源包`CropImage-Enhance`,我们将涵盖以下...

    android裁剪图片作为头像

    以上就是实现“android裁剪图片作为头像”的主要步骤和涉及的技术点。在实际开发中,还需要考虑用户体验,比如错误处理、图片加载优化、兼容性问题等。同时,随着Android系统的更新,新的API和最佳实践也需要不断...

    Android裁剪图片

    总之,Android裁剪图片是一项实用的功能,通过理解并实践上述知识点,开发者可以构建出自己的图片裁剪工具,满足各种应用场景的需求。希望这个简单的例子能帮助到Android开发初学者,也欢迎更多经验分享和交流,共同...

    Android图片裁剪----移动、缩放图片进行裁剪

    在裁剪图片时,通常会用到ImageView和CropImageView等视图组件。 移动图片: 1. 创建一个ImageView或自定义View,将其ScaleType设置为Matrix,这样我们可以直接对Matrix进行操作来改变图片的位置。 2. 使用Matrix的...

    Android裁剪图片(裁剪为缩略图和大图两种形式)

    在裁剪图片时,我们通常会用到Bitmap的子类,如MutableBitmap,因为裁剪需要对位图进行修改。 1. **图片裁剪基础** - 使用`ImageView`或`BitmapFactory`加载原始图片。 - `Bitmap.createBitmap()`方法用于创建一...

    Android 完美图片裁剪

    在Android开发中,图片裁剪是一项常见的功能,用于让用户选择并调整图像的显示部分,比如在上传头像或者编辑照片时。"Android完美图片裁剪"这个话题涉及到多个技术点,我们将逐一深入探讨。 首先,Android系统提供...

    Android图片裁剪demo

    在Android开发中,图片处理是一项常见的任务,而图片裁剪功能更是不可或缺的一部分,尤其是在社交、相机应用或图像编辑器中。本示例“Android图片裁剪demo”专注于提供一个实现方形和非方形裁剪功能的解决方案。下面...

Global site tag (gtag.js) - Google Analytics