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

 更新时间:2015年10月09日 13:59:12   投稿:mrr  
当我们需要上传图片时,想要裁剪成我们需要的尺寸大小,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);
  }
 }
}

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

相关文章

  • Android 实现微信登录详解

    Android 实现微信登录详解

    本文主要介绍Android 微信登录分享朋友圈,这里给大家详细介绍了Android微信登录的详细流程,有需要的小伙伴可以参考下
    2016-07-07
  • Android 8.0如何完美适配全局dialog悬浮窗弹出

    Android 8.0如何完美适配全局dialog悬浮窗弹出

    这篇文章主要给大家介绍了关于Android 8.0如何完美适配全局dialog悬浮窗弹出的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧
    2018-07-07
  • Android中View自定义组合控件的基本编写方法

    Android中View自定义组合控件的基本编写方法

    这篇文章主要介绍了Android中View自定义组合控件的基本编写方法,可以在布局的时候更加随意地继承,需要的朋友可以参考下
    2016-04-04
  • Android实现微信摇骰子游戏

    Android实现微信摇骰子游戏

    这篇文章主要为大家详细介绍了Android实现微信摇骰子游戏的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android中实现根据资源名获取资源ID

    Android中实现根据资源名获取资源ID

    这篇文章主要介绍了Android中实现根据资源名获取资源ID,本文讲解了使用文件名获取资源ID的方法,需要的朋友可以参考下
    2015-01-01
  • Android 菜单栏DIY实现效果详解

    Android 菜单栏DIY实现效果详解

    这篇文章主要为大家介绍了Android 菜单栏DIY实现效果详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Android实现带有进度条的按钮效果

    Android实现带有进度条的按钮效果

    这篇文章主要为大家详细介绍了Android实现带有进度条的按钮效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Android NDK开发(C语言-文件读写)

    Android NDK开发(C语言-文件读写)

    这篇文章主要介绍了Android NDK开发C语言文件读写,一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。下面我们就来看看在Android NDK开发中的C语言文件读写详细内容吧,需要的朋友可以参考一下
    2021-12-12
  • Android中recyclerView底部添加透明渐变效果

    Android中recyclerView底部添加透明渐变效果

    这篇文章主要给大家介绍了关于Android中recyclerView如何实现底部添加透明渐变效果的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2018-04-04
  • Android 滑动监听的实例详解

    Android 滑动监听的实例详解

    这篇文章主要介绍了Android 滑动监听的实例详解的相关资料,希望通过本能帮助到大家,需要的朋友可以参考下
    2017-09-09

最新评论