首页 > 系统 > Android > 正文

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

2020-04-11 11:24:12
字体:
来源:转载
供稿:网友

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

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表