从本地相册中选择图片
一 了解下
Android.intent.action.PICK 从列表中选择某项并返回所选数据
MediaStore.Images.Media.EXTERNAL_CONTENT_URI 是获取手机的图像的URL,
“image/*” 显示所有image类型
startActivityForResult(Intent intent, int requestCode) 此方法作用: 跳到新的Activity并,新的Acivity在finish时候向前面的那个Activity传递数据
onActivityResult(int requestCode, int resultCode, Intent data) 此方法作用 得到传递回来的数据
二 代码部分
package com.example.getpicture;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.MediaStore.Images.Media;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView photo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
photo = (ImageView) findViewById(R.id.photo);
photo.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/*");
startActivityForResult(intent, 10); //第二个参数为请求码
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// 第一个参数为请求码 即startActivityForResult中的哪个地方请求码
// resultCode 结果码 作用:返回的数据来自于哪个新Activity,
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==10&&resultCode==RESULT_OK){
if(data!=null){
photo.setImageURI(data.getData()); //将对应的URl地址(即图片)赋值给photo
}
}
}
}
<RelativeLayout 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"
tools:context="${relativePackage}.${activityClass}" >
<ImageView
android:id="@+id/photo"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerHorizontal="true"
android:padding="3dp"
android:background="@android:color/holo_green_light"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
单击图片即可选择相册中图片更换原来图片。