<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>