Android Studio 基础 之 简单获取手机端所有图片

目录

Android Studio 基础 之 简单获取手机端所有图片

一、简单介绍

二、实现原理

三、注意实现

四、预览效果

五、实现步骤

六、关键代码


一、简单介绍

Android 开发中的一些基础操作,使用整理,便于后期使用。

本节介绍,获取移动端所有图片,这里主要是获得了图片的路径(绝对路径)和图片名称,方法不唯一,仅供参考。

二、实现原理

1、使用 Cusor 解析查询 cursor.getColumnIndex(MediaStore.Images.Media.DATA) 获取图片数据

2、 int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

String name = cursor.getString(column_index); 得到图片的据对路径

3、cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME) 获取图片的名称

三、注意实现

1、因为要读取文件夹之类,所以需要读写权限

四、预览效果

五、实现步骤

1、打开Android Studio ,新建工程

2、按照步骤一步一步来,构建一个工程模块

3、编写脚本,获取移动端所有图片路径和名称

4、在 AndroidManifest.xml 添加 读写权限

5、连接设备,打包运行,给应用对应权限,效果如上

六、关键代码

1、MainActivity.java

package com.example.getallimages;import android.database.Cursor;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class MainActivity extends AppCompatActivity {ArrayList paths = null;ArrayList names= null;List<Map<String, Object>> listItems;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);GetImagesPath();Log.i("GetImagesPath", "onCreate: listItems.size " + listItems.size());}void GetImagesPath(){paths = new ArrayList();names = new ArrayList();Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null);while (cursor.moveToNext()) {//获取图片的名称String name = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME));// 获取图片的绝对路径int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);String path = cursor.getString(column_index);paths.add(path);names.add(name);Log.i("GetImagesPath", "GetImagesPath: name = "+name+"  path = "+ path);}listItems = new ArrayList<>();for (int i = 0; i < paths.size(); i++) {Map<String, Object> map = new HashMap<>();map.put("name", paths.get(i));map.put("desc", names.get(i));listItems.add(map);}}}

2、AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.getallimages"><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

Android Studio 基础 之 简单获取手机端所有图片相关推荐

  1. Android Studio 基础 之 获取蓝牙Bluetooth 的状态,设置的蓝牙Bluetooth 的开关状态,并监听蓝牙Bluetooth 的状态变化方法整理

    Android Studio 基础 之 获取蓝牙Bluetooth 的状态,设置的蓝牙Bluetooth 的开关状态,并监听蓝牙Bluetooth 的状态变化方法整理 目录 Android Studi ...

  2. 日历 android 周历,Android Studio 基础 之 获取系统Calendar 日历日程 (涉及指定日期时间判断是星期几的方法使用)的方法整理...

    Android Studio 基础 之 获取系统Calendar 日历日程 (涉及指定日期时间判断是星期几的方法使用)的方法整理 目录 Android Studio 基础 之 获取系统Calendar ...

  3. Android Studio 基础 之 获取系统Calendar 日历日程(可获得当天以后可设定天数范围内的日历日程) (涉及指定日期时间判断是星期几的方法使用)的方法整理

    Android Studio 基础 之 获取系统Calendar 日历日程(可获得当天以后可设定天数范围内的日历日程) (涉及指定日期时间判断是星期几的方法使用)的方法整理 目录 Android St ...

  4. Android Studio 基础 之 截图,指定截图区域动态截图

    Android Studio 基础 之 截图,指定截图区域动态截图 目录 Android Studio 基础 之 截图,指定截图区域动态截图 一.简单介绍 二.实现原理 三.注意事项 四.预览效果 五 ...

  5. 使用Android Studio编写一个简单的音乐盒

    文章目录 一.知识要点 二.xml代码 activity_main.xml 三.java代码 MainActivity.java MusicService.java 四.运行界面展示 五. 源码Git ...

  6. 【Android开发】Android Studio中进行简单的WebView构建浏览器开发2

    [[Android开发]Android Studio中进行简单的WebView构建浏览器开发2 第1步:在上一篇博客的基础上,修改activity_main.xml 第2步:在MainActivity ...

  7. Android Studio 基础按钮使用

    Android Studio 基础按钮使用 按钮使用线性的垂直布局 更改默认按钮的深蓝色背景(https://blog.csdn.net/try17875864815/article/details/ ...

  8. 安卓逆向_22( 一 ) --- Xposed【 Android Studio + Xposed 实现简单的 hook 】

    From:使用渗透测试框架 Xposed 框架 hook 调试 Android APP:https://www.freebuf.com/articles/terminal/56453.html Xpo ...

  9. Android Studio基础输入文本框EditText

    Android Studio基础输入文本框EditText 接续上一节<Android Studio 基础按钮使用> 1.提示文本框.输入文本框,在布局xml编写 <EditText ...

最新文章

  1. 进程创建函数fork()和vfork()
  2. 《强化学习周刊》第21期:EMNLP 2020-2021强化学习的最新研究与应用
  3. 单击触发jquery.autocomplete的两种方法
  4. OpenGL编程指南13:光源移动
  5. Java经典面试题整理及答案详解(四)
  6. Oracle启用和禁用触发器
  7. PHP-代码审计-文件删除
  8. jbutton 数组创建 java_java-将JButton数组添加到JPanel(按钮不可见)
  9. 结对编程 贪吃蛇项目-开发环境搭建过程
  10. 想提高运维效率,那就把MySQL数据库部署到Kubernetes 集群中
  11. 计算机网络安全常见问题,计算机网络安全是指什么?
  12. sip hold 解决方法【原创】
  13. SAP官网学习教程(3) HANA数据库开发
  14. Docotic.Pdf New Crack by Crackdung
  15. 3.3.7 使用difflib.get_close_matches函数
  16. 记录从微信商户获取微信支付账单过程
  17. 《云计算技术与应用基础》课程标准
  18. office2003word解除安全模式启动
  19. 达梦数据库巡检脚本--生成html格式的报告
  20. rails相当于java中的什么_Rails中的ERB中的%,%=,%#和-%有什么区别?

热门文章

  1. if-else if语句与多if语句
  2. 【路径追踪】数学工具--蒙特卡洛方法(Monte Carlo)
  3. 哪些企业必须要注册35类商标?
  4. 爱心存储:从入门到精通
  5. android 充电动画_酷玩儿丨去掉耳机和充电器,以后数据线苹果也不会送了
  6. 截取手机号的前三位与后四位
  7. SpringMvc工作流程图讲解
  8. WORD精灵:将Word文档中的标点符号统一为全角或者半角
  9. CSP 2021考前每日2题(10-2)洛谷 P5020 货币系统 + USACO2021铜组 Uddered but not Herd
  10. 阅读并记录别人的23岁