android 调用照相机拍照 并缩放切割图片

android 调用相机拍照 并缩放切割图片
android 下如果做处理图片的软件 可以调用系统的控件 实现缩放切割图片 非常好的效果
    package cn.m15.test;  
      
    import java.io.ByteArrayOutputStream;  
    import java.io.File;  
    import android.app.Activity;  
    import android.content.Intent;  
    import android.graphics.Bitmap;  
    import android.net.Uri;  
    import android.os.Bundle;  
    import android.os.Environment;  
    import android.provider.MediaStore;  
    import android.view.View;  
    import android.view.View.OnClickListener;  
    import android.widget.Button;  
    import android.widget.ImageView;  
      
    public class testActivity extends Activity {  
      
        public static final int NONE = 0;  
        public static final int PHOTOHRAPH = 1;// 拍照  
        public static final int PHOTOZOOM = 2; // 缩放  
        public static final int PHOTORESOULT = 3;// 结果  
      
        public static final String IMAGE_UNSPECIFIED = "image/*";  
        ImageView imageView = null;  
        Button button0 = null;  
        Button button1 = null;  
      
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            imageView = (ImageView) findViewById(R.id.imageID);  
            button0 = (Button) findViewById(R.id.btn_01);  
            button1 = (Button) findViewById(R.id.btn_02);  
      
            button0.setOnClickListener(new OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    Intent intent = new Intent(Intent.ACTION_PICK, null);  
                    intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, IMAGE_UNSPECIFIED);  
                    startActivityForResult(intent, PHOTOZOOM);  
                }  
            });  
      
            button1.setOnClickListener(new OnClickListener() {  
      
                @Override  
                public void onClick(View v) {  
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
                    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "temp.jpg")));  
                    startActivityForResult(intent, PHOTOHRAPH);  
                }  
            });  
        }  
      
        @Override  
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
            if (resultCode == NONE)  
                return;  
            // 拍照  
            if (requestCode == PHOTOHRAPH) {  
                //设置文件保存路径这里放在跟目录下  
                File picture = new File(Environment.getExternalStorageDirectory() + "/temp.jpg");  
                startPhotoZoom(Uri.fromFile(picture));  
            }  
              
            if (data == null)  
                return;  
              
            // 读取相册缩放图片  
            if (requestCode == PHOTOZOOM) {  
                startPhotoZoom(data.getData());  
            }  
            // 处理结果  
            if (requestCode == PHOTORESOULT) {  
                Bundle extras = data.getExtras();  
                if (extras != null) {  
                    Bitmap photo = extras.getParcelable("data");  
                    ByteArrayOutputStream stream = new ByteArrayOutputStream();  
                    photo.compress(Bitmap.CompressFormat.JPEG, 75, stream);// (0 - 100)压缩文件  
                    imageView.setImageBitmap(photo);  
                }  
      
            }  
      
            super.onActivityResult(requestCode, resultCode, data);  
        }  
      
        public void startPhotoZoom(Uri uri) {  
            Intent intent = new Intent("com.android.camera.action.CROP");  
            intent.setDataAndType(uri, IMAGE_UNSPECIFIED);  
            intent.putExtra("crop", "true");  
            // aspectX aspectY 是宽高的比例  
            intent.putExtra("aspectX", 1);  
            intent.putExtra("aspectY", 1);  
            // outputX outputY 是裁剪图片宽高  
            intent.putExtra("outputX", 64);  
            intent.putExtra("outputY", 64);  
            intent.putExtra("return-data", true);  
            startActivityForResult(intent, PHOTORESOULT);  
        }  
    }  


    <?xml version="1.0" encoding="utf-8"?>  
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:orientation="vertical" android:layout_width="fill_parent"  
        android:layout_height="fill_parent">  
        <TextView android:layout_width="fill_parent"  
            android:layout_height="wrap_content" android:text="@string/hello" />  
        <ImageView android:id="@+id/imageID"  
            android:adjustViewBounds="true" android:maxWidth="50dip"  
            android:maxHeight="50dip" android:layout_width="wrap_content"  
            android:layout_height="wrap_content" />  
        <Button android:id="@+id/btn_01" android:layout_height="50dip"  
                android:text="相册" android:layout_width="150dip"/>  
        <Button android:id="@+id/btn_02" android:layout_height="50dip"  
                android:text="拍照" android:layout_width="150dip"/>  
    </LinearLayout>  



1 楼 ysyhzlq 2012-02-01  
[flash=200,200]
字体颜色: 标准深红红色橙色棕色黄色绿色橄榄青色蓝色深蓝靛蓝紫色灰色白色黑色 字体大小: 标准1 (xx-small)2 (x-small)3 (small)4 (medium)5 (large)6 (x-large)7 (xx-large) 对齐: 标准居左居中居右[/flash][u][/u]

    [list]
  • [/list]