【问题标题】:How to set images from sdcard in cardview如何在cardview中从sdcard设置图像
【发布时间】:2016-06-09 08:45:15
【问题描述】:

我正在尝试为 android 构建一个应用程序。我在回收站视图中有一个 android 卡列表。一个例子:

在左侧的标题、专辑和年份附近,我插入了一个 100dp x 100dp 的 Imageview 空间。 Xml的结构是这个http://pastebin.com/t3spdaTS

所有信息都在应用程序内的 sqlite 中的一个简单数据库中。我有一些图像保存在/sdcard/my_app_name 中,带有一个渐进数字1.jpg, 2.jpg, ecc...,其中数字是数据库内的行。现在我怎样才能把这些图像放在每张卡片上?我试着写在里面

dbHelper = new DBHelper(getApplicationContext());
Cursor cursor = dbHelper.getDisks();
cursor.moveToFirst();
...
ImageView iv = (Imageview)find
 while(!cursor.isAfterLast()){
        count++;

        String artist = cursor.getString(cursor.getColumnIndex(DBHelper.COL_ARTIST));
        ...
 AlbumCard albumCard = new AlbumCard(0, artist, album, year);
        String path = "sdcard/Warehouse_app/" + count + ".jpg";
        iv.setImageDrawable(Drawable.createFromPath(path));
        list.add(albumCard);

        cursor.moveToNext();
    }

但是iv.setImage 给了我一个`空指针异常。我该如何解决这个问题?谢谢大家。

【问题讨论】:

  • 您在查找图像视图时遇到问题,可能是您没有inflate 布局
  • 是的,我在我的卡适配器中扩展了我的布局:pastebin.com/qxERGnhk

标签: android sqlite android-layout android-recyclerview android-cardview


【解决方案1】:

NullPointerException 表示 Drawable.createFromPath(path) 返回 null,路径有问题。

你应该这样得到一个 sdcard 路径

    String path = Environment.getExternalStorageDirectory().getAbsolutePath() 
    + File.separator + "Warehouse_app" 
    + File.separator + count + ".jpg";

那么也许你应该检查这个文件是否存在:

    File checkIfFileExists = new File(path);
    if(File.exist()){
         iv.setImageDrawable(Drawable.createFromPath(path));
    }

忘记了:你应该在 AndroidManifest 中添加权限

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

【讨论】:

  • 等等,也许是你的 iv 为空,你能检查一下吗?顺便说一句,这是什么 ImageView iv = (Imageview)find ?你不应该使用findViewById(R.id.icon_disk);吗?
  • 好的,我明白一件事:如果我想在卡中加载图像,我必须在我的卡适配器中写一些指令(这个:pastebin.com/rG5zKK06)。现在我必须在这里传递我的图像路径
  • 我已经解决了我的问题:我在我的卡适配器中添加了查看图像的说明,并且我已经更正了我所有文件中 sdcard 的路径。此外,我将 SD 卡中 img 的绝对路径传递给我的 Cardadapter。谢谢大家!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多