从缓存图像文件中获取URI图像

时间:2013-11-20 22:26:51

标签: android image android-listview universal-image-loader

我已在我的应用中实施了搜索和自定义建议。 我现在尝试在建议文本旁边添加图像。我正在使用SearchManager类,并使用游标填充数据以放入我的数据库中的建议下拉列表。

我理解我必须在SearchManager.SUGGEST_COLUMN_ICON_1标识的列的光标行中添加(正如documentation中所述:

  1. content(SCHEME_CONTENT)
  2. android.resource(SCHEME_ANDROID_RESOURCE)
  3. file(SCHEME_FILE)
  4. 到目前为止我所尝试的是以下内容:

    private void generateSuggestionsCursor(MatrixCursor cursor, Cursor userCursor) {
                long id = cursor.getCount();
    
                userCursor.moveToFirst();
                while (!userCursor.isAfterLast()) {
                    String userName = userCursor.getString("username");
                    String uriImage = userCursor.getString("urlImage");
                    File imageAsNeeded = ImageLoader.getInstance().getDiscCache().get(uriImage);
                    Uri urlAsNeeded = Uri.parse(imageAsNeeded.toString());
                    cursor.newRow().add(id).add(userName).add(urlAsNeeded).add(Intent.ACTION_SEARCH).add(userName);
                    userCursor.moveToNext();
                }
            }
    

    问题是我没有想要在本地下拉列表中显示的图像。 我正在使用Android Universal Image Loader

    从网址加载它们

    我还尝试使用图片的缓存版本,但URI始终采用以下格式:

    /data/data/com.app.appname/cache/1216470680
    

    我试图在file:// or content://之前添加,但没有任何成功。

    无论如何要实现我的目标吗?

    Suggestion dropdown - Droids should be replaced by a specific image

1 个答案:

答案 0 :(得分:0)

如果您可以将它们放入资源中,请执行以下操作:

理想情况下,您需要四种尺寸,但只需使用drawable-hdpi尺寸即可。要加载它,请执行以下操作:

Drawable d = getResources().getDrawable (R.drawable.my_id);