如何在cardview中设置来自sdcard的图片

How to set images from sdcard in cardview

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

在左侧的标题、专辑和年份附近,我插入了 100dp x 100dp 的图像视图 space。 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 给了我一个“空指针异常”。我该如何解决这个问题?谢谢大家。

NullPointerException表示Drawable.createFromPath(path) returns 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" />