Android -- 打开本地图片且显示路径

简介:

背景                                                                                         

imageimage

image

代码                                                                                          

先上布局文件:

复制代码
<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/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/hello_world"/>
    <ImageView
        android:id="@+id/pic"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:contentDescription="@string/app_name"/>
</LinearLayout>
复制代码

这里没有TextView,我最后是将路径以System.out.println方式输出的。

初始化:

复制代码
button = (Button)findViewById(R.id.button);
        pic = (ImageView) findViewById(R.id.pic);
        button.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO 自动生成的方法存根
                System.out.println("onClick");
                Intent intent = new Intent();
                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityForResult(intent, 1);
            }
        });
复制代码

对于startActivityForResult的回调函数进行覆写:

复制代码
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO 自动生成的方法存根
        System.out.println(requestCode+"");
        if(requestCode==1)
        {
            //获得图片的uri 
            Uri uri = data.getData();
            //外界的程序访问ContentProvider所提供数据 可以通过ContentResolver接口
            ContentResolver cr = this.getContentResolver();
            Bitmap bitmap;
            //Bitmap bm; //这是一种方式去读取图片
            try 
            {
                //bm = MediaStore.Images.Media.getBitmap(cr, uri); 
                //pic.setImageBitmap(bm);
                bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
                pic.setImageBitmap(bitmap);
                System.out.println("GOOD");
                //第一种方式去读取路径
                //String[] proj = {MediaStore.Images.Media.DATA};
                /*
                 //好像是android多媒体数据库的封装接口,具体的看Android文档
                Cursor cursor = managedQuery(uri, 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);
                   */
                //第二种方式去读取路径
                Cursor cursor =this.getContentResolver().query(uri, null, 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 (Exception e)
            {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
                System.out.println("BAD");
            }
            
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
复制代码

最后的path就是路径。

我是天王盖地虎的分割线                                 




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3720594.html,如需转载请自行联系原作者

相关文章
|
4天前
|
Java Android开发
android 下载图片的问题
android 下载图片的问题
11 3
|
4天前
|
Android开发
Android通过手势(多点)缩放和拖拽图片
Android通过手势(多点)缩放和拖拽图片
11 4
|
6天前
|
JSON Android开发 数据格式
Android 打开系统文件管理器,并返回选中文件的路径
Android 打开系统文件管理器,并返回选中文件的路径
13 0
|
7天前
|
Android开发
Android中Glide加载Https图片失败的解决方案
Android中Glide加载Https图片失败的解决方案
14 1
|
21天前
|
存储 缓存 安全
Android系统 应用存储路径与权限
Android系统 应用存储路径与权限
15 0
Android系统 应用存储路径与权限
|
5月前
|
XML JSON Java
Android App开发即时通信中通过SocketIO在客户端与服务端间传输文本和图片的讲解及实战(超详细 附源码)
Android App开发即时通信中通过SocketIO在客户端与服务端间传输文本和图片的讲解及实战(超详细 附源码)
94 0
|
1月前
|
Android开发
Android保存图片到相册(适配android 10以下及以上)
Android保存图片到相册(适配android 10以下及以上)
29 1
|
5月前
|
API Android开发
[Android]图片加载库Glide
[Android]图片加载库Glide
59 0
|
5月前
|
Android开发
[Android]制作9-Patch图片
[Android]制作9-Patch图片
45 0
|
5月前
|
XML JSON Android开发
Android App开发实战项目之给用户推荐旅游信息图片(附源码 简单易懂)
Android App开发实战项目之给用户推荐旅游信息图片(附源码 简单易懂)
50 0