Android开发从相机或相册获取图片裁剪

废话不多说了,直接给大家贴代码了。

package com.only.android.app;

import java.io.File;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.net.Uri;

import android.os.Bundle;

import android.os.SystemClock;

import android.provider.MediaStore;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import com.only.android.R;

public class CopyOfImageScaleActivity extends Activity implements View.OnClickListener {

/** Called when the activity is first created. */

private Button selectImageBtn;

private ImageView imageView;

private File sdcardTempFile;

private AlertDialog dialog;

private int crop = 180;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.imagescale);

selectImageBtn = (Button) findViewById(R.id.selectImageBtn);

imageView = (ImageView) findViewById(R.id.imageView);

selectImageBtn.setOnClickListener(this);

sdcardTempFile = new File("/mnt/sdcard/", "tmp_pic_" + SystemClock.currentThreadTimeMillis() + ".jpg");

}

@Override

public void onClick(View v) {

if (v == selectImageBtn) {

if (dialog == null) {

dialog = new AlertDialog.Builder(this).setItems(new String[] { "相机", "相册" }, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

if (which == 0) {

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");

intent.putExtra("output", Uri.fromFile(sdcardTempFile));

intent.putExtra("crop", "true");

intent.putExtra("aspectX", 1);// 裁剪框比例

intent.putExtra("aspectY", 1);

intent.putExtra("outputX", crop);// 输出图片大小

intent.putExtra("outputY", crop);

startActivityForResult(intent, 101);

} else {

Intent intent = new Intent("android.intent.action.PICK");

intent.setDataAndType(MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*");

intent.putExtra("output", Uri.fromFile(sdcardTempFile));

intent.putExtra("crop", "true");

intent.putExtra("aspectX", 1);// 裁剪框比例

intent.putExtra("aspectY", 1);

intent.putExtra("outputX", crop);// 输出图片大小

intent.putExtra("outputY", crop);

startActivityForResult(intent, 100);

}

}

}).create();

}

if (!dialog.isShowing()) {

dialog.show();

}

}

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {

if (resultCode == RESULT_OK) {

Bitmap bmp = BitmapFactory.decodeFile(sdcardTempFile.getAbsolutePath());

imageView.setImageBitmap(bmp);

}

}

}

以上代码很简单,相信大家都可以看的懂吧,欲了解更多信息请持续关注本站,谢谢。

以上是 Android开发从相机或相册获取图片裁剪 的全部内容, 来源链接: utcz.com/z/334234.html

回到顶部