发现好多项目要做这个功能实现上传图片,自定义用户头像等功能分享下代码吧。。
        QuickContactBadge headimag;//用来显示图片的控件,你可以是imageview,textview等。。
        private final String IMAGE_TYPE = "image/*";
private final int IMAGE_CODE = 0;   //这里的IMAGE_CODE是自己任意定义的
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        headimag=(QuickContactBadge)findViewById(R.id.quickContactBadge_headimg);
        headimag.setImageResource(R.drawable.searchheadimg);//设置默认图片
        }
        @Override
protected void onResume() {
super.onResume();
                //单击控件进入收藏选择头像
headimag.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
 Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT);
        getAlbum.setType(IMAGE_TYPE);
        startActivityForResult(getAlbum, IMAGE_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
 if (resultCode != RESULT_OK) {        //此处的 RESULT_OK 是系统自定义得一个常量
 System.out.println(resultCode);
        return;
    }
    Bitmap bm = null;
    //外界的程序访问ContentProvider所提供数据 可以通过ContentResolver接口
    ContentResolver resolver = getContentResolver();
    //此处的用于判断接收的Activity是不是你想要的那个
    if (requestCode == IMAGE_CODE) {
        try {
            Uri originalUri = data.getData();        //获得图片的uri 
            bm = MediaStore.Images.Media.getBitmap(resolver, originalUri);//显得到bitmap图片这里开始的第二部分,获取图片的路径:
            headimag.setImageBitmap(bm);//把获取到的图片添加到相框
            String[] proj = {MediaStore.Images.Media.DATA};
            //android多媒体数据库的封装接口
            Cursor cursor = managedQuery(originalUri, proj, null, null, null); 
            //按我个人理解 这个是获得用户选择的图片的索引值
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            //将光标移至开头 ,这个很重要,不小心很容易引起越界
            cursor.moveToFirst();
            //最后根据索引值获取图片路径
            String path = cursor.getString(column_index);
            System.out.println(path);
        }catch (IOException e) {
            System.out.println(e.toString()); 
        }
    }
}