直接上代码,代码中注释很清楚,本人觉得这个东西google本来自己就应该集成好,直接一个方法调用最好,因为这个用的比较多,一般的android手机中交流的软件基本上都需要这个东西。

package com.example.photodemo;import android.app.Activity;import android.content.ContentResolver;import android.content.Intent;import android.database.Cursor;import android.graphics.Bitmap;import android.graphics.BitmapFactory;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;import android.widget.Toast;public class MainActivity extends Activity {private ImageView image;// 要显示选择的图片private Bitmap photo;// 选择好的图片的bitmap形式private Button button1;// 图片private Button button2;// 拍照private static final int PIC = 1;// 图片private static final int PHO = 2;// 照相@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main);button1 = (Button) findViewById(R.id.button1);button2 = (Button) findViewById(R.id.button2);image = (ImageView) findViewById(R.id.imageView1);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_GET_CONTENT);startActivityForResult(intent, PIC);}});// 拍照上传button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String state = Environment.getExternalStorageState();if (state.equals(Environment.MEDIA_MOUNTED)) {// 如果存储卡可用Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");startActivityForResult(intent, PHO);} else {Toast.makeText(getApplicationContext(), "存储卡不可用",Toast.LENGTH_LONG).show();}}});}/** * 取得回传的数据 */protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (data != null && requestCode == PHO) { // 拍照上传时Bundle extras = data.getExtras();if (extras != null) {photo = (Bitmap) extras.get("data");image.setImageBitmap(photo);} else {Toast.makeText(MainActivity.this, "未找到图片", Toast.LENGTH_LONG).show();}}if (resultCode == Activity.RESULT_OK) {Uri uri = data.getData();// 当选择的图片不为空的话,在获取到图片的途径try {String[] pojo = { MediaStore.Images.Media.DATA };Cursor cursor = managedQuery(uri, pojo, null, null, null);if (cursor != null) {ContentResolver cr = this.getContentResolver();int colunm_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);cursor.moveToFirst();String path = cursor.getString(colunm_index);/*** * 这里加这样一个判断主要是为了第三方的软件选择,比如:使用第三方的文件管理器的话,你选择的文件就不一定是图片了, * 这样的话,我们判断文件的后缀名 如果是图片格式的话,那么才可以 */if (path.endsWith("jpg") || path.endsWith("png")) {photo = BitmapFactory.decodeStream(cr.openInputStream(uri));image.setImageBitmap(photo);} else {}} else {}} catch (Exception e) {}}}}

布局也顺便写一下吧

<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" >    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="选择相片" />    <Button        android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="拍照相片" />    <EditText        android:id="@+id/editText1"        android:layout_width="match_parent"        android:layout_height="150dp"        android:ems="10"        android:inputType="textMultiLine" >        <requestFocus />    </EditText>    <ImageView        android:id="@+id/imageView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/ic_launcher" /></LinearLayout>


作者:Wang6279026 发表于2013-2-20 21:31:21 原文链接 阅读:71 评论:0 查看评论

更多相关文章

  1. Android学习札记47:TextView显示Html类解析的网页和图片及自定义
  2. Android(安卓)图像系列: 图片的压缩
  3. Android(安卓)实现简单的画画版一
  4. Android(安卓)选择图片、上传图片之ImagePicker
  5. Android(安卓)程式开发:(十一)选择控件 —— 11.1 TimePicker
  6. Android添加多语言
  7. android 7.0 相机,拍照 调裁切提示 “无法加载此图片” 解决方案
  8. 如何引入一个example到eclipse
  9. Android之多种Bitmap效果

随机推荐

  1. Android Activity生命週期简介
  2. Android学习博客和文章存档
  3. 接收短信启动相应服务
  4. 管道的私用,删除android的流氓
  5. android 修改videoview的宽度和高度
  6. Android7.0适配教程与心得
  7. android集成百度地图SDK 自定义keystore
  8. Android开发资料视频教程(光盘6.2G)
  9. 【转】 Android转屏时禁止调用onCreate
  10. Android app内部下载安装