Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >3-AIV--使用ContentProvider获得所有图片路径

3-AIV--使用ContentProvider获得所有图片路径

作者头像
张风捷特烈
发布于 2018-09-26 08:28:18
发布于 2018-09-26 08:28:18
1.6K00
代码可运行
举报
运行总次数:0
代码可运行
零、前言

[1].顾名思义,内容提供者,目的:实现跨进程间数据共享 [2].基于数据库提供数据 [3].如电话簿,短信,歌曲信息都是以数据库存储存储,都可以通过ContentProvider获取 [4].如果只是想使用的人,直接把静态方法拷贝即可,想知道原理的,图片和注释认真看一下,也可以自己分析一下联系人的表。 [5].本文只打印一下查询结果:RecycleView篇将会界面展示数据,Xml篇将会介绍备份到本地

一、代码实现
1.实体类
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 作者:张风捷特烈
 * 时间:2018/4/18:11:36
 * 邮箱:1981462002@qq.com
 * 说明:文件夹实体类
 */
public class FolderBean {

    /**
     * 当前文件夹路径
     */
    private String dir;

    /**
     * 当前文件夹第一个照片的路径
     */
    private String firstImgPath;
    /**
     *
     */
    private String name;
    /**
     * 当前文件夹内图片数量
     */
    private int count;


    public String getDir() {
        return dir;
    }

    public void setDir(String dir) {
        this.dir = dir;
        String[] names = this.dir.split("/");
        this.name = names[names.length - 1];
    }

    public String getFirstImgPath() {
        return firstImgPath;
    }

    public void setFirstImgPath(String firstImgPath) {
        this.firstImgPath = firstImgPath;
    }

    public String getName() {
        return name;
    }


    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }


    @Override
    public String toString() {
        return "FolderBean{" +
                "dir='" + dir + '\'' +
                ", firstImgPath='" + firstImgPath + '\'' +
                ", name='" + name + '\'' +
                ", count=" + count +
                '}';
    }
2.获得所有图片路径的封装方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 作者:张风捷特烈
 * 时间:2018/4/14:10:15
 * 邮箱:1981462002@qq.com
 * 说明:获取手机,联系人工具类
 */
public class PhoneUtils_Picture {
    /**
     * 最大图片数量的文件夹图片数
     */
    public static int mMaxCount = 0;

    /**
     * 最大图片数量的文件夹
     */
    public static File mMaxCountDir = null;

    //////////////////////////获取手机的图片///////////////////////////////////

    public static List<FolderBean> getAllImagePath(Context ctx) {
        List<FolderBean> mFolderBeans = new ArrayList<>();

        //[1]查询获得游标:content://media/external/images/media
        Uri mIngUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        ContentResolver resolver = ctx.getContentResolver();
        Cursor cursor = resolver.query(mIngUri, null,
                MediaStore.Images.Media.MIME_TYPE + "=? or "
                        + MediaStore.Images.Media.MIME_TYPE + "=?",
                new String[]{"image/jpeg", "image/png"},
                MediaStore.Images.Media.DATE_MODIFIED);

        //[2]通过游标获取path,创建folderBean对象并赋值
        //[2-1]为避免重复扫描,将dirPath放入HashSet集合
        Set<String> mDirPaths = new HashSet<>();
        while (cursor.moveToNext()) {
            //获取数据库中图片路径:/storage/emulated/0/DCIM/Camera/IMG20160501152640.jpg
            String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
            //获取父目录:/storage/emulated/0/DCIM/Camera
            File parentFile = new File(path).getParentFile();
            //没有父目录,跳出本次循环
            if (parentFile == null) continue;
            //声明实体对象
            FolderBean folderBean;
            //父目录的绝对路径:/storage/emulated/0/DCIM/Camera
            String dirPath = parentFile.getAbsolutePath();
            if (mDirPaths.contains(dirPath)) {
                continue;//集合中有这个目录 跳出本次循环
            } else {//集合中没有这个目录
                //加入集合
                mDirPaths.add(dirPath);
                //创建实体对象
                folderBean = new FolderBean();
                //父文件夹设置到folderBean
                folderBean.setDir(dirPath);
                //第一张图片路径设置到folderBean
                folderBean.setFirstImgPath(path);
            }

            if (parentFile.list() != null) {
                //根据父文件夹,过滤出所有以jpg,png,jpeg结尾的文件的数量
                int imgCount = parentFile.list(new FilenameFilter() {
                    @Override
                    public boolean accept(File dir, String name) {
                        return name.endsWith(".jpg") || name.endsWith(".png") || name.endsWith(".jpeg");
                    }
                }).length;

                if (mMaxCount <= imgCount) {
                    mMaxCount = imgCount;
                    mMaxCountDir = parentFile;
                }

                //设置文件夹下图片的数量
                folderBean.setCount(imgCount);
                //加入集合
                mFolderBeans.add(folderBean);
            }
        }
        cursor.close();
        return mFolderBeans;
    }
}
3.使用:

注意:查询数据库是耗时操作,为了不阻塞主线程,最好新建个线程操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
new Thread(new Runnable() {
    @Override
    public void run() {
        List<FolderBean> allImagePath = PhoneUtils_Picture.getAllImagePath(MainActivity.this);
        System.out.println(
        PhoneUtils_Picture.mMaxCountDir+ "文件夹图片数最多,有" +
        PhoneUtils_Picture.mMaxCount+"张");
        for (FolderBean folderBean : allImagePath) {
        System.out.println(folderBean);
        }
    }
}).start();
4.结果:

图片.png

本文由张风捷特烈原创,转载请注明 更多安卓技术欢迎访问:https://www.jianshu.com/c/004f3fe34c94 张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com 你的喜欢与支持将是我最大的动力

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.08.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从SAP最佳业务实践看企业管理(174)-CO-采购成本核算及差异分析
存货作为企业的一种资产,在企业资产中占有相当比重,合理选择存货的计价方法对企业的财务状况、经营成果和现金流量会产生不同的影响。这里介绍SAP系统中最典型的两种计价方法:标准成本和移动平均价,来了解其在采购过程中的成本核算及其差异处理。 1、标准成本法 在ERP环境下,对于存货的采购通常包含两个步骤:采购收货和发票校验。当采购收货和发票校验完成后都会在系统中自动生成相应的会计凭证。但自动记帐的科目和金额由于存货计价方法不同和收货与收发票的顺序不同而不同。 在标准成本法下,采购价与计划/标准价之间的价
SAP最佳业务实践
2018/03/27
1.9K0
从SAP最佳业务实践看企业管理(172)-CO-生产成本核算
生产订单 生产定单定义了什么产品将在什么时候在什么地点被生产。同时,多少工作、多少资源将被使用,以及定单的成本将被如何结算。 生产计划部门运行MRP等计划工具,系统结合产品需求和库存状况生成计划定单(PlannedOrder),计划定单被确认并转成生产定单,生产定单下达后,车间开始执行生产任务。 对于产成品在系统中已经维护了它们的工艺路线和物料清单,在生成生产定单时系统会自动建议生产工序以及各道工序的原材料投料,计划员可以在此基础上进行修正和确认。当生产定单下达时,该定单的预估成本(PreliminaryC
SAP最佳业务实践
2018/03/27
1.1K0
从SAP最佳业务实践看企业管理(172)-CO-生产成本核算
从SAP最佳业务实践看企业管理(165)-成本哪些事
从现在开始关注成本吧,企业经营说到底是成本的竞争,在质量差不多的情况下,谁的成本低,则说明其经营效率高,代表是先进生产力,市场自然会选择他。 虽然近来企业更多关注可能是快速响应市场需求以加快新品在市场的投放速度,满足客户的个性化需要、提高客户的忠诚度以增加企业的销售收入。 成本: 取得财货或劳务、并可以用所付价格(或必须于将来支付款项)加以衡量的代价,称为成本。在评估所取得的财货或劳务的价值时,成本就是资产;当其效益消失时,成本就变成损失或费用。 成本可分为两大类: 1.资本支出(capitalexpend
SAP最佳业务实践
2018/03/27
8190
ABC成本法在企业物流成本核算和管理中的应用
1. 物流成本研究的意义及现状 物流成本,是指产品在实物运动过程中,如包装、装卸、储存、流通加工、物流信息等各个环节所支出的人力、财力、物力和总和。改善企业内部物流而增加利润成为当今企业管理的热点和重点,被称为"第三利润源泉"。那么这块金矿到底有多在,如何充分挖掘这块金矿则成为当今企业密切关注的问题。 物流技术20世纪50年代在日本兴起,发展至今已形成了一套完整的体系,由重视功能变为重视成本,进而变为重视服务。物流成本管理一直受到日本物流界的重视,在长期的发展中逐步向物流成本与财务结算制度相连结。神奈川大
SAP最佳业务实践
2018/03/27
1.8K0
ABC成本法在企业物流成本核算和管理中的应用
从SAP最佳业务实践看企业管理(181)-国内行业成本核算简介
行业成本核算简介 1.农业企业与农业企业成本 农业企业是从事农、林、牧、副、渔业等生产经营活动,具备较高的商品率,实行自主经营,独立经济核算,具有法人资格的盈利性的经济组织。具有与工业企业不同的特点。 农业企业成本构成也因农产品生产特点的不同而不同于工业产品成本的构成,包括了种子种苗、肥料农药、直接人工、其他直接费、燃料动力、折旧修理、材料及其他等内容。 2.农业产品成本的计算 农业产品成本以每种农作物为成本计算对象,设置“生产成本”账户,设立直接材料、直接工资、其他直接费用、制造
SAP最佳业务实践
2018/03/27
8560
生产型企业成本管理模式面面观
20世纪70年代以来,由于信息革命席卷全球,科学技术迅猛发展,市场需求结构发生显着变化,人们的消费行为越来越倾向于多样化和个性化;这促使市场由共性需求向个性需求转变,传统的大批量、标准化生产向小批量、个性化生产过渡。现代小批量生产型企业并不具有大批量生产下的成本领先优势,其竞争优势主要将通过差别化竞争战略获得。差别化竞争战略是指提供与众不同的产品和服务以满足顾客的特殊需求,以取得持久竞争优势。 小批量生产企业,在关注如何获取其竞争优势的同时,应注意到产品的价格必须为顾客所接受,避免在价格昂贵情况下片面追求差
SAP最佳业务实践
2018/03/27
7640
从SAP最佳业务实践看企业管理(167)-CO成本管理
成本管理的定义:成本管理是一个组织用来计划、监督和控制成本以支持管理决策和管理行为的基本流程。 成本管理解决的商业问题 我们如何使资源配置最优化? 我如何控制成本? 我如何衡量我们工作的效率? 我怎样改进流程? 我如何决定预算? 我如何认定预算超支的责任? 我要采用什么成本基准来衡量目标? 我们的绩效系统如何影响业绩? 我如何将日常控制行为同战略相连? 什么经营性信息是对我们整体的成功有着至关重要的作用? 一般而言,成本会计提供管理者在规划与控制作业上所需的会计工具, 特别是成本资料的收集、表达以及分析,
SAP最佳业务实践
2018/03/27
8600
从SAP最佳业务实践看企业管理(168)-生产过程核算
耗费材料、工资和其他费用,产出产品。实物形态上是由储备资金变成生产资金再变成为成品资金。过程的重点是计算生产产品的成本。 生产费用:企业在一定时期内为生产产品而发生的生产耗费。企业费用的一部分。 生产成本(制造成本):按一定种类和数量产品归集计入成本的生产费用。是对象化了的费用。 一、财务账户设置 原则上设二个方面账户: 一方面是资产的耗费,需设“生产成本”,“制造费用”,“管理费用”,“财务费用”“应付工资”,“原材料”等。 另一方面是产品的形成。应设“库存商品”等。其他还涉及到权责发生制应用的账户等。
SAP最佳业务实践
2018/03/27
9500
从SAP最佳业务实践看企业管理(168)-生产过程核算
工业智造探索者的数字化之旅:数字化转型引领肉类食品企业前行
导语: 当今,对肉类食品加工企业而言,高昂的人工费用、经济的不稳定性以及愈发激烈的竞争构成了巨大挑战。传统的成本核算方式已然显得力不从心,无法实现对成本的精细管理。本文将深入探讨数字化转型,为企业带来的机遇与好处,以及如何实施这一关键性的变革。
工业智造探索者
2023/10/16
2700
从SAP最佳业务实践看企业管理(166)-CO成本相关概念
成本对象(costobjective): 或称成本客体,是指可用个别成本加以衡量的任何活动或项目。成本对象是管理会计的主要特色,它可能是资源消耗或取得的活动或作业(修理汽车、回答所询问的咨询、测试电路板、或调节银行帐户); 可能是产品或劳务(制造个人电脑、租用房间);可能是一项设计(筑屋、造船);可能是一项计划(药物控制计划、或运动计划)。 SAP中成本对象: 1. 成本中心(CostCenter) 成本中心类似于企业内部“部门”的概念,但在财务管理中它主要用于成本控制的目的。将公司按照成本中心分
SAP最佳业务实践
2018/03/27
1.3K0
从SAP最佳业务实践看企业管理(166)-CO成本相关概念
从SAP最佳业务实践看企业管理(180)-国内成本会计的一些概念
财务会计都出了新准则,但是感觉成本似乎没跟大上,如果按国内成本会计的这些概念去设计系统,估计系统会不好使用, 在处理制造费用,辅助生产成本和基本生产成本的结转上,SAP有些做法和国内成本会计采用了不同的思路.一直想整理一下SAP成本模块设计的一些比较好的东西,比如使用初级要素和次级要素,国内软件财务和成本数据不分离,成本流转时比如动力厂的供电车间所有的费用SAP可以以次级要素科目电或作业类型-电分配到其它车间,其他车间看到的只是电一个次级科目,这样非常明了,报表取数非常清晰。 ERP的成本模块如果象合并系统
SAP最佳业务实践
2018/03/27
1.1K0
从SAP最佳业务实践看企业管理(170)-CO-178标准成本计算
计算过程:先从底层计算,然后层层上卷到上层。 物料清单中可能会包括一些半成品,这些半成品本身也有物料清单。这样就构成了多层物料清单(MultilevelBOMs)。对于多层物料清单,SAP系统首先计算物料清单中最低层次物料的成本。随后逐步计算上一层次的物料(半成品),计算过程中包括了已经计算过的下层物料的成本。这一过程被称为成本上卷(Costrollup)。当我们保存最终产成品的成本估算时,该产成品下的每一层半成品的成本估算和成本构成也被同步保存。通过成本上卷我们就可以分析每个生产层次的附加价值(Value
SAP最佳业务实践
2018/03/27
1.3K0
从SAP最佳业务实践看企业管理(170)-CO-178标准成本计算
从SAP最佳业务实践看企业管理(175)-CO-期末结算
成本月结大概过程: 回顾一下产品成本组成: 直接材料,指直接用于产品生产的原材料,燃料和动力, 直接人工,指直接参加产品生产的工人工资和福利费; 制造费用(又称间接费用),指间接用于产品生产的各项费用。 日常的处理过程中都按标准成本进行记账,月末实际的成本出来后,那实际和计划一定有差异,成本月结实际就是处理差异的过程。 直接人工和制造费用是通过作业价格*作业数量进行记账,作业价格计划和实际一定会有差异,根据实际的消耗和实际的作业数量,系统可以计算出实际的作业价格,然后根据实际的作业价格对生产订单成本进行重算
SAP最佳业务实践
2018/03/27
3.4K0
从SAP最佳业务实践看企业管理(175)-CO-期末结算
SAP CO-成本管理方案
1、 原材料及外购产品采购入库时,按照移动平均成本计价,外购件主数据中维护计划价格(分别为去年平均价及最新市场价),采购价格与主数据中的计划价格进行对比,材料会计定期运行报表《外购物料价格对比分析表》对差异进行分析,及时根据市场行情调整材料的计划价格(详见应付管理方案);
用户5495712
2019/05/29
3.9K0
SAP CO-成本管理方案
从SAP最佳业务实践看企业管理(178)-CO-462物料帐下的实际成本核算
CO物料帐下的实际成本核算(462) 此业务流程的目的是计算物料的实际成本,通过物料帐的结算功能将标准成本和实际成本的差异分摊到营业成本和存货。 考虑到工厂之间的产品转移,应当在每个工厂用标准成本结算之后对这些工厂一起做物料帐的结算。然后检查每个工厂的结算细节,检查物料帐下重新计算的营业成本和存货价值。 启用物料帐之后,必须按顺序逐月完成按实际成本的期末结算。如果前一期间的实际成本核算没有运行,接下来的新期间也无法运行实际成本核算(单级和多极价格确定)。 在关闭当前期间(事务代码:MMPV)之前,确保前一期
SAP最佳业务实践
2018/03/27
1.2K0
从SAP最佳业务实践看企业管理(95)-ETO按订单设计
5、ETO按订单设计 在这种生产类型下,一种产品在很大程度上是按照某一特定客户的要求来设计的,所以说支持客户化的设计是该生产流程的重要功能和组成部分。因为绝大多数产品都是为特定客户度身定制,所以这些产品有可能只生产一次。在这种生产类型中,产品的生产批量较小,但是设计工作和最终产品往往非常复杂。在生产过程中,每一项工作都要特殊处理,因为每项工作都可能有不一样的操作,不一样的费用,需要不同的人员来完成。当然,除了特殊该产品专用材料之外也有一些与其它产品共享的原材料。 PS232ETO–报价处理 用途 业务情景E
SAP最佳业务实践
2018/03/26
1.5K0
从SAP最佳业务实践看企业管理(177)-CO-物料分类账
1、为什么使用物料分类帐? 中国会计准则规定:对存货的核算必须采用历史成本法(即实际成本法),如果企业采用计划成本法或者定额成本法进行日常核算的,应当按期结转其成本差异,将计划成本或者定额成本调整为实际成本。而SAP中则可以使用物料分类帐来解决这个问题。 将原材料购置、生产制造加工过程中,产生的各项差异,通过层层上卷并合理分摊,最终核算出产成品的实际成本(即当期的加权平均价),并按实际成本结算至当期销售成本与存货值。 在SAP系统中,我们可以使用标准成本法和移动平均价来核算原材料的成本。如果我们以标准成本
SAP最佳业务实践
2018/03/27
2K0
从SAP最佳业务实践看企业管理(177)-CO-物料分类账
从SAP最佳业务实践看企业管理(65)-SOP-离散VS流程
离散型生产和流程型生产 运营制造业务的特性主要分为两大类:离散型生产和流程型生产。 离散型生产 对于离散型制造企业来说,其生产特点是通过对原材料物理形状的改变,经过一系列并不连续的工序最终组装成为产品,使其增值。离散制造企业的产品结构,可以用"树"的概念进行描述——其最终产品一定是由固定个数的零件或部件组成,这些关系非常明确并且固定。典型的机械制造业就属于离散制造企业。其业务流程由以下几个主要业务组成:生产用料采购、物料储存、零部件加工、装配、产品销售等。 离散工业企业的原材料主要是固体,产品也为固体形状.
SAP最佳业务实践
2018/03/26
1.8K0
从SAP最佳业务实践看企业管理(171)-标准成本制度在宝钢的运用
一、标准成本制度的内涵 标准成本制度是指围绕标准成本的相关指标(如技术指标、作业指标、计划值等)而设计的,将成本的前馈控制、反馈控制及核算功能有机结合而形成的一种成本控制系统。其主要内容包括成本标准的制定、成本差异揭示及分析、成本差异的帐务处理三部分。 根据我们实践中的体会,标准成本应依据各生产流程的操作规范,利用健全的生产。工程、技术测定(包括时间及动作研究、统计分析、工程实验等方法),对各成本中心及产品订定合适的数量化标准,再将该数量化标准金额化,做为成本绩效衡量与标准产品成本计算的基础。具体涉及以下几
SAP最佳业务实践
2018/03/27
1.1K0
从SAP最佳业务实践看企业管理(169)-CO-标准成本计算基础
由上节可知标准成本法对管理有很大的好处,通过标准成本和实际成本的对比,可以找出管理上需要改进的地方。那标准成本是如何计算出来的呢? 产品标准成本也是根据料、工、费来计算得出。 一、物料成本 物料成本计
SAP最佳业务实践
2018/03/27
1.7K0
从SAP最佳业务实践看企业管理(169)-CO-标准成本计算基础
推荐阅读
相关推荐
从SAP最佳业务实践看企业管理(174)-CO-采购成本核算及差异分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验