Elyar的实用工具类(一)

ElyarAnwar Note:


<embed src="http://music.163.com/style/swf/widget.swf?sid=9028524&type=3&auto=1&width=320&height=66" width="340" height="86"  allowNetworking="all"></embed>


转载前请注明出处,尊重版权 :http://blog.csdn.net/u012418084



调用系统的裁剪工具:(有轮子用轮子)


package com.cn.ilim.Util;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.widget.ImageView;

/**
 *
 * @author ElyarAnwar
 *
 */
public class UtilCopeImage {

    /* 请求码 */
    private static final int IMAGE_REQUEST_CODE = 0;// 请求获取相册中的图片
    private static final int CAMERA_REQUEST_CODE = 1;// 请求开启照相机,暂时不用,升级可用
    private static final int RESULT_REQUEST_CODE = 2;// 裁剪过后的请求

    private static Activity activity;

    /**
     * 裁剪后的照片显示到ImageView
     *
     * @param data
     */
    private static void getImageToView(ImageView image, Intent data) {
        // TODO Auto-generated method stub
        Bundle bundle = data.getExtras();
        if (bundle != null) {
            Bitmap bitmap = bundle.getParcelable("data");
            Drawable drawable = new BitmapDrawable(bitmap);
            image.setImageDrawable(drawable);
        }

    }

    /**
     * 对从相册获取的照片进行裁剪 (有轮子用轮子)
     *
     * @param uri
     */
    private static void startPhotoZoom(Activity activity, Uri uri) {
        Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(uri, "image/*");
        // 设置裁剪
        intent.putExtra("crop", "true");
        // aspectX aspectY 是宽高的比例
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        // outputX outputY 是裁剪图片宽高
        intent.putExtra("outputX", 320);
        intent.putExtra("outputY", 320);
        intent.putExtra("return-data", true);
        activity.startActivityForResult(intent, RESULT_REQUEST_CODE);
    }

    /**
     * 进行裁剪
     * <span style="color:#FF0000;">调用方法一:选图</span>
     *
     * @param activity
     */
    public static void startMethed(Activity activity) {

        UtilCopeImage.activity = activity;
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        UtilCopeImage.activity.startActivityForResult(intent,
                IMAGE_REQUEST_CODE);
    }

    /**
     * <span style="color:#FF0000;">在实现裁剪的Acvitity的ActivityResult()方法中调用</span>
     *
     * <span style="color:#FF0000;">调用方法二:裁剪并显示至目标区域</span>
     *
     * @param requestCode
     * @param resultCode
     * @param data
     * @param image
     */
    public static void resultMethed(int requestCode, int resultCode,
            Intent data, ImageView image) {
        if (resultCode != 0) {
            switch (requestCode) {
            case IMAGE_REQUEST_CODE:
                startPhotoZoom(UtilCopeImage.activity, data.getData());// 进入相册获取照片并送到裁剪器
                break;

            case RESULT_REQUEST_CODE:// 裁剪完成
                if (data != null) {
                    getImageToView(image, data);// 裁剪后的照片显示到ImageView
                }
                break;
            }
        }
    }

}

调用方式:

第一步:点击控件进入相册选图:调用UtilCopeImage.startMethed(Activity activity);

例如:

                XXX.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				<span style="color:#FF0000;">UtilCopeImage.startMethed(AtyAddUser.this);// 开始裁剪</span>
			}
		});
第二步:在此Activity的onActivityResult()方法中调用

                                          UtilCopeImage.resultMethed(int requestCode, int resultCode,Intent data, ImageView image);

完成;

只需调用

UtilCopeImage.startMethed(Activity activity);// 开始裁剪

UtilCopeImage.resultMethed(int requestCode, int resultCode,Intent data, ImageView image);// 完成裁剪并显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值