package com.app.imagechooser;import java.io.File;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.database.Cursor;import android.provider.MediaStore;import android.net.Uri;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.Button;/** * This example shows how to create and handle image picker in Android. *  * @author Lorensius W. L. T <lorenz@londatiga.net> * */public class MainActivity extends Activity {private Uri mImageCaptureUri;private ImageView mImageView;private static final int PICK_FROM_CAMERA = 1;private static final int PICK_FROM_FILE = 2;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                setContentView(R.layout.main);                final String [] items= new String [] {"From Camera", "From SD Card"};ArrayAdapter<String> adapter= new ArrayAdapter<String> (this, android.R.layout.select_dialog_item,items);AlertDialog.Builder builder= new AlertDialog.Builder(this);//android.R.layout.select_dialog_item 这是android内置布局builder.setTitle("Select Image");builder.setAdapter( adapter, new DialogInterface.OnClickListener() {public void onClick( DialogInterface dialog, int item ) {if (item == 0) {Intent intent  = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);File file = new File(Environment.getExternalStorageDirectory(),   "tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg");mImageCaptureUri = Uri.fromFile(file);try {intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);intent.putExtra("return-data", true);startActivityForResult(intent, PICK_FROM_CAMERA);} catch (Exception e) {e.printStackTrace();}dialog.cancel();} else {Intent intent = new Intent();                intent.setType("image/*");                intent.setAction(Intent.ACTION_GET_CONTENT);                                startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_FILE);}}} );final AlertDialog dialog = builder.create();mImageView = (ImageView) findViewById(R.id.iv_pic);((Button) findViewById(R.id.btn_choose)).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dialog.show();}});    }        @Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    if (resultCode != RESULT_OK) return;   Bitmap bitmap = null;String path= "";if (requestCode == PICK_FROM_FILE) {mImageCaptureUri = data.getData(); path = getRealPathFromURI(mImageCaptureUri); //from Gallery if (path == null)path = mImageCaptureUri.getPath(); //from File Managerif (path != null) bitmap = BitmapFactory.decodeFile(path);} else {path= mImageCaptureUri.getPath();bitmap  = BitmapFactory.decodeFile(path);}mImageView.setImageBitmap(bitmap);}public String getRealPathFromURI(Uri contentUri) {        String [] proj = {MediaStore.Images.Media.DATA};        Cursor cursor = managedQuery( contentUri, proj, null, null,null);                if (cursor == null) return null;                int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);                cursor.moveToFirst();        return cursor.getString(column_index);}}

<?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"    android:padding="10dp">    <TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="Android Image Choose Example"/>    <Button android:id="@+id/btn_choose"android:text="Choose Image"  android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_marginTop="10dp"/><ImageView android:id="@+id/iv_pic"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"/></LinearLayout>

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android 隐藏自己的多媒体文件
  2. android开发文档之onTouch()
  3. 安卓应用-去掉标题栏
  4. android错误信息大整理
  5. Android(安卓)phone policy
  6. android 拨号面板
  7. 如何解决向eclipse导入android project时
  8. Android(安卓)抽屉效果
  9. Android(安卓)点击文字实现跳转
  10. Android: 仿Launcher Workspace左右滑动