`
喧嚣求静
  • 浏览: 572698 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

剪切图片-扩展android 选择图片(从手机照相机或手机图片)

阅读更多

这里给出关键部分代码,其余和文章《android 选择图片(从手机照相机或手机图片)》 类似

 private void doCrop() {
		final ArrayList<CropOption> cropOptions = new ArrayList<CropOption>();
    	
    	Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setType("image/*");
        
        List<ResolveInfo> list = getPackageManager().queryIntentActivities( intent, 0 );
        
        int size = list.size();
        
        if (size == 0) {	        
        	Toast.makeText(this, "Can not find image crop app", Toast.LENGTH_SHORT).show();
        	
            return;
        } else {
        	intent.setData(mImageCaptureUri);
            
            intent.putExtra("outputX", 200);
            intent.putExtra("outputY", 200);
            intent.putExtra("aspectX", 1);
            intent.putExtra("aspectY", 1);
            intent.putExtra("scale", true);
            intent.putExtra("return-data", true);
            
        	if (size == 1) {
        		Intent i 		= new Intent(intent);
	        	ResolveInfo res	= list.get(0);
	        	
	        	i.setComponent( new ComponentName(res.activityInfo.packageName, res.activityInfo.name));
	        	
	        	startActivityForResult(i, CROP_FROM_CAMERA);
        	} else {
		        for (ResolveInfo res : list) {
		        	final CropOption co = new CropOption();
		        	
		        	co.title 	= getPackageManager().getApplicationLabel(res.activityInfo.applicationInfo);
		        	co.icon		= getPackageManager().getApplicationIcon(res.activityInfo.applicationInfo);
		        	co.appIntent= new Intent(intent);
		        	
		        	co.appIntent.setComponent( new ComponentName(res.activityInfo.packageName, res.activityInfo.name));
		        	
		            cropOptions.add(co);
		        }
	        
		        CropOptionAdapter adapter = new CropOptionAdapter(getApplicationContext(), cropOptions);
		        
		        AlertDialog.Builder builder = new AlertDialog.Builder(this);
		        builder.setTitle("Choose Crop App");
		        builder.setAdapter( adapter, new DialogInterface.OnClickListener() {
		            public void onClick( DialogInterface dialog, int item ) {
		                startActivityForResult( cropOptions.get(item).appIntent, CROP_FROM_CAMERA);
		            }
		        });
	        
		        builder.setOnCancelListener( new DialogInterface.OnCancelListener() {
		            @Override
		            public void onCancel( DialogInterface dialog ) {
		               
		                if (mImageCaptureUri != null ) {
		                    getContentResolver().delete(mImageCaptureUri, null, null );
		                    mImageCaptureUri = null;
		                }
		            }
		        } );
		        
		        AlertDialog alert = builder.create();
		        
		        alert.show();
        	}
        }
	}

 

分享到:
评论

相关推荐

    Android 自定义拍照+剪切+相册选择一张或多张图片

    在Android应用开发中,自定义拍照、剪切和相册选择图片是常见的需求,这些功能可以为用户提供丰富的交互体验。本文将深入探讨如何在Android中实现这些功能,并着重讲解使用Glide图片加载框架和ImageSelector相册多...

    Android图片剪切

    在图片剪切应用中,通常会通过Intent启动相机或图库应用,让用户选择要剪切的图片。 7. **ActivityResultContract**(API 30+):在Android 10及以上版本,Intent的startActivityForResult已经被废弃,取而代之的是...

    android GridView 添加图片

    在这个场景下,"android GridView 添加图片"的主题涉及了如何在GridView中加载和操作图片,包括从图库选择图片、通过相机拍摄图片以及对图片进行剪切等操作。下面将详细介绍这些知识点。 1. **GridView的基本使用**...

    Android 拍照剪切demo

    在Android开发中,拍照并进行剪切操作是一个常见的功能,特别是在社交、图片编辑类应用中。这个"Android拍照剪切demo"就是一个简单的示例,它提供了详细的注释,方便开发者理解和使用。下面将深入探讨这个功能实现的...

    Android富文本编辑器源码

    2. **插入图片**:用户可以在编辑器中插入本地图片或网络图片,并能调整图片大小和位置。 3. **链接处理**:允许用户添加超链接,点击后可以跳转到指定网页。 4. **列表和缩进**:支持无序列表、有序列表以及首行...

    SmartCropper::fire:一个以智能方式裁剪图像的库,可以识别边框并校正裁剪后的图像。智能图片缩放框架。自动识别边框,手动调节选区,使用透视变换裁剪并校正正选区;适用于身份证,名片,文档等照片的裁剪

    您也可以关注我的另一个库 :SmartCamera是一个Android相机扩展库,能够实时采集和识别相机内部物体是否对准吻合指定区域。 支持特性 使用智能算法(基于opencv)识别图片中的边框 支持先进锚点,手动调节选区,放大...

    SD文件浏览器

    SD(Secure Digital)卡是一种便携式存储设备,广泛用于手机、相机和其他便携式设备中,用于扩展设备的存储空间。它采用闪存技术,具有容量大、体积小、易携带的特点。SD卡支持热插拔,可以在不关闭设备的情况下进行...

    SD卡文件浏览器

    标题“SD卡文件浏览器”指的是一个应用程序,它允许用户在Android设备或任何使用SD卡作为扩展存储的设备上浏览和管理文件与文件夹。这样的工具通常具有用户友好的界面,支持基本的文件操作,如查看、复制、移动、...

    Kinemaster For Laptop - Windows and Mac-crx插件

    KineMaster是世界上最流行,最好的免费视频编辑器应用程序,适用于android用户。 但是,现在您可以为所有其他平台下载并安装笔记本电脑。 在Windows或Mac笔记本电脑上使用此应用程序,您可以制作专业视频。 对于视频...

Global site tag (gtag.js) - Google Analytics