本地图片选择(打开媒体库,选择图片)

在此调查中我要实现的是:点击Pictures按钮后,获取手机内所有图片,选择某一个图片,并显示到ImageView中。

应用范围: 图片上传时的图片选择  , 类似"浏览"。

所有的图片都会列出来,包括目录。

在Activity Action里面有一个“ACTION_GET_CONTENT”字符串常量,该常量让用户选择特定类型的数据,并返回该数据的URI.我们利用该常量,然后设置类型为“image/*”,就可获得Android手机内的所有image。

 

 

main.xml :

<?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"      />    

 <Button           android:id="@+id/b01"    

      android:layout_width="fill_parent"      

     android:layout_height="wrap_content"       />    

  <ImageView          android:id="@+id/iv01"    

      android:layout_width="fill_parent"       

    android:layout_height="wrap_content"        /> 

 </LinearLayout> 

 java代码:

 

view plaincopy to clipboardprint? package com.yfz; 

import java.io.FileNotFoundException;

  import android.app.Activity; 

 import android.content.ContentResolver;

  import android.content.Intent; 

 import android.graphics.Bitmap; 

 import android.graphics.BitmapFactory;

  import android.NET.Uri; 

 import android.os.Bundle; 

 import android.util.Log; 

 import android.view.View; 

 import android.widget.Button;

  import android.widget.ImageView; 

 public class Lesson_01_Pic extends Activity {   

   /** Called when the activity is first created. */   

   @Override 

    public void onCreate(Bundle savedInstanceState) {     

     super.onCreate(savedInstanceState);      

    setContentView(R.layout.main);               

     Button button = (Button)findViewById(R.id.b01);      

    button.setText("选择图片");       

   button.setOnClickListener(new Button.OnClickListener(){       

       @Override          

    public void onClick(View v) {            

      Intent intent = new Intent();                 

/* 开启Pictures画面Type设定为image */             

     intent.setType("image/*");                

  /* 使用Intent.ACTION_GET_CONTENT这个Action */          

        intent.setAction(Intent.ACTION_GET_CONTENT);              

     /* 取得相片后返回本画面 */            

      startActivityForResult(intent, 1);         

     }                     

   });   

   }       

     @Override   

   protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

        if (resultCode == RESULT_OK) {    

          Uri uri = data.getData();            

  Log.e("uri", uri.toString());            

  ContentResolver cr = this.getContentResolver();            

  try {               

   Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));       

           ImageView imageView = (ImageView) findViewById(R.id.iv01);             

     /* 将Bitmap设定到ImageView */             

     imageView.setImageBitmap(bitmap);         

     } catch (FileNotFoundException e) {            

      Log.e("Exception", e.getMessage(),e);        

      }       

   }      

    super.onActivityResult(requestCode, resultCode, data); 

    } 

 }

posted @ 2011-12-06 14:32  wenjiefeng  阅读(284)  评论(0编辑  收藏  举报