android 从SQLLite中获取到的图片路径,用Bitmap 加载不出来

android 从SQLLite中获取到的图片路径,用Bitmap 加载不出来,但是从本地文件中获取到的路径可以正常加载显示

下面是这两种方式的主要代码

    //从数据库获取路径并加载
    for (DiagHistory diagHistory : diagLists) {
        String path = diagHistory.getHistoryPic();
            Bitmap bitmap =BitmapFactory.decodeFile(path);
            ivPic.setImageBitmap(bitmap);

        //从本地文件获取并加载
            List<String> pics=getFiles();
     for (int i = 0; i < pics.size(); i++) {
     String path1 = pics.get(i);
     Bitmap bit = BitmapFactory.decodeFile(path1);
     ivPic.setImageBitmap(bit);

     }

该问题已经解决,原因是:图片的名字是用当前系统时间命名的,插入数据库的时间和本地存储图片的时间不是一个time,所以导致会有时间误差而找不到图片,,,非常感谢各位的支持与帮助,,

path和path1的区别,对比一下两者的二进制是否一致,或许存在一个方法是 path1 = fx(path)需要实现的

当路径上传到数据库或者从数据库返回的时候,要查看一下实际内容是否和你想象的一样,因为可能在传送的过程中部分特殊字符被转码了。
另一个问题是,你从数据库获取路径后,该路径表示的实际磁盘位置,是否还有该文件。

path 和paht1 都是图品的路径,不是二进制的形式上,,,,比如这样

/data/data/com.novaiot.nbox/files/2016-03-03 04:33:05.png

或许你应该试试将path转化成uri对uri进行图片的获取显示:
ivPic.setImageBitmap(BitmapFactory.decodeStream(getContentResolver().openInputStream(Uri.fromFile(picUri))));

可能是文件名的问题。

打印两个path 看看区别

查看图片的路径,看有什么不同,,,

获取数据库路径加载的时候出现了一个这个错误信息,但是没有抛异常,,,但是图片不显示 03-04 00:07:00.946: E/BitmapFactory(8560): Unable to decode stream: java.io.FileNotFoundException: /data/data/com.novaiot.nbox/files/2016-03-04 00:06:47.png: open failed: ENOENT (No such file or directory)