android App 相机相册裁剪


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/img"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:src="@drawable/ic_launcher" />
   
   
</LinearLayout>
package com.example.lianxi;

import java.io.File;

import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {

   private ImageView img;
   private AlertDialog dialog;
   private Button btn01;
   private Button btn02;
   private String path=Environment.getExternalStorageDirectory()+"/1512Q.png";

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      img = (ImageView) findViewById(R.id.img);
      // 点击图片
      img.setOnClickListener(new OnClickListener() {


         @Override
         public void onClick(View v) {
            // 弹出alertDialog
            Builder builder = new AlertDialog.Builder(MainActivity.this);
            dialog = builder.create();
            View view = View.inflate(MainActivity.this,
                  R.layout.dialog_layout, null);
            // 找视图
            btn01 = (Button) view.findViewById(R.id.btn01);
            btn02 = (Button) view.findViewById(R.id.btn02);
            //相机
            btn01.setOnClickListener(new OnClickListener() {
               @Override
               public void onClick(View v) {
                  //获取意图action
                  Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                  //获取图片位置
                  intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(path)));
                  startActivityForResult(intent, 100);
               }
            });
            //相册
            btn02.setOnClickListener(new OnClickListener() {
               @Override
               public void onClick(View v) {
                  //获取意图action
                  Intent intent = new Intent(Intent.ACTION_PICK);
                  //设置图片类型
                  intent.setType("image/*");
                  startActivityForResult(intent, 250);
               }
            });
            // 设置视图
            dialog.setView(view);
            // 显示
            dialog.show();
         }
      });
      
   }
   //回调方法
   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      // TODO Auto-generated method stub
      super.onActivityResult(requestCode, resultCode, data);
      //相机
      if(requestCode==100 && resultCode==RESULT_OK){
         //获取系统路径
         Intent intent = new Intent("com.android.camera.action.CROP");
         //设置图片类型
         intent.setDataAndType(Uri.fromFile(new File(path)), "image/*");
         //是否裁剪
         intent.putExtra("crop", true);
         //设置图片比例
         intent.putExtra("aspectX", 1);
         intent.putExtra("aspectY", 1);
         //输出大小
         intent.putExtra("outputX", 250);
         intent.putExtra("outputY", 250);
         //返回数据
         intent.putExtra("return-data", true);
         startActivityForResult(intent, 200);
      }
      if(requestCode==200 && resultCode==RESULT_OK){
         Bitmap bitmap=data.getParcelableExtra("data");
         img.setImageBitmap(bitmap);
         dialog.dismiss();
      }
      //相册
      if(requestCode==250 && resultCode==RESULT_OK){
         //获取系统图片
         Intent intent = new Intent("com.android.camera.action.CROP");
         //获取路径
         Uri uri = intent.getData();
         //设置图片类型
         intent.setDataAndType(uri, "image/*");
         //是否裁剪
         intent.putExtra("crop", true);
         //图片比例
         intent.putExtra("aspectX", 1);
         intent.putExtra("aspectY", 1);
         //输出大小
         intent.putExtra("outputX", 250);
         intent.putExtra("outputY", 250);
         //返回数据
         intent.putExtra("return-data", true);
         startActivityForResult(intent, 150);
      }
      if(requestCode==150 && resultCode==RESULT_OK){
         Bitmap bitmap=data.getParcelableExtra("data");
         img.setImageBitmap(bitmap);
         dialog.dismiss();
      }
   }

}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <Button 
        android:id="@+id/btn01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="相机"
        />
    <Button 
         android:id="@+id/btn02"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="相册"
        />
</LinearLayout>

猜你喜欢

转载自blog.csdn.net/niu_yue_jiao/article/details/80412003