• 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://pan.baidu.com/s/1dD1Qx01

    OpenPic.zip

    转载请注明出处:http://www.cnblogs.com/yydcdut/p/3720594.html

  • 相关阅读:
    转:高效使用 SSH 的 16 个技巧
    关于flash的多文件上传的http头
    使用Xmind画流程图、脑图
    用html5+flash两种方案实现前端长文转图
    用“夜间模式”模式(javascript书签)浏览网页
    浏览器上传图片技术的一点分析
    需求管理的关键步骤其实只有一个
    基于Google GWT的图形编辑框架gwthtml5graph发布了!
    软件需求与天女散花
    你和软件需求,谁管谁
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3720594.html
Copyright © 2020-2023  润新知