软件编程
位置:首页>> 软件编程>> Android编程>> Android开发从相机或相册获取图片裁剪

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

作者:mrr  发布时间:2022-11-09 01:52:17 

标签:android,裁剪

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);
 }
}
}

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com