zoukankan      html  css  js  c++  java
  • android 利用contentprovider查询图库里的图片并用imageview显示

      1、在图库的contentprovider里存储的是image、video、audio的信息的存储,如:它们的格式、文件的路径等,因此外面利用getcontentprovider对数据库进行查询这些信息可以获得文件在sd卡的存储地址从而可以获取图片,一个简单的demo:

    public class MainActivity extends PermissionActivity {
    
        ImageView imageview ;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            imageview = (ImageView) findViewById(R.id.image);
    
            Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
            ContentResolver mContentResolver = MainActivity.this.getContentResolver();
    
            //只查询jpeg和png的图片
            Cursor mCursor = mContentResolver.query(mImageUri, null,
                    MediaStore.Images.Media.MIME_TYPE + "=? or "
                            + MediaStore.Images.Media.MIME_TYPE + "=?",
                    new String[] { "image/jpeg", "image/png" }, MediaStore.Images.Media.DATE_MODIFIED);
    
            if(mCursor == null){
                return;
            }
      //只显示第一张图片
            mCursor.moveToNext();
            String path = mCursor.getString(mCursor
                        .getColumnIndex(MediaStore.Images.Media.DATA));
    
            Bitmap bitmap =BitmapFactory.decodeFile(path);
            imageview.setImageBitmap(bitmap);
    
    
    }
    
    }
    

      图库的数据库只是一个索引,它只存储了图片、视频、音频的索引即位置,并没有真的存储,因此在访问的时候得得到路径然后加以利用。

    MediaStore.Images.Media.DATA 图片
    MediaStore.Videos.Media.DATA 视频
    MediaStore.Audios.Media.DATA 音频
  • 相关阅读:
    1、springcloud gateway
    -webkit-overflow-scrolling:touch 相关
    SpringBoot(一)原理剖析:SpringApplication启动原理
    JAVA基础面试题
    JVM面试题
    排序(四)选择排序:简单选择排序
    排序(三)插入排序:简单插入排序和希尔排序
    排序(二)交换排序:冒泡排序与快速排序
    排序(一)简介
    多线程面试题
  • 原文地址:https://www.cnblogs.com/bokeofzp/p/5995996.html
Copyright © 2011-2022 走看看