baidu_19694879
2016-03-03 09:25
采纳率: 50%
浏览 2.0k

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);

     }
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • baidu_19694879 2016-03-07 02:51
    已采纳

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

    打赏 评论
  • hikarisamax 2016-03-03 09:29

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

    打赏 评论
  • 忘世麒麟 2016-03-03 09:30

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

    打赏 评论
  • baidu_19694879 2016-03-03 09:33

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

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

    打赏 评论
  • myleo_lost-a-horse 2016-03-03 09:45

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

    打赏 评论
  • 忧喜悲欢 2016-03-03 09:56

    可能是文件名的问题。

    打赏 评论
  • 103style 2016-03-04 03:08

    打印两个path 看看区别

    打赏 评论
  • keyborad_boy 2016-03-04 06:58

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

    打赏 评论
  • baidu_19694879 2016-03-04 07:41

    获取数据库路径加载的时候出现了一个这个错误信息,但是没有抛异常,,,但是图片不显示 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)

    打赏 评论

相关推荐 更多相似问题