如何在 Android 中的 ListView 中使用数据库中的图像?

发布于 2024-09-18 08:46:39 字数 1371 浏览 5 评论 0原文

我有一个 ListView

...

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="?android:attr/colorBackground"
    android:cacheColorHint="?android:attr/colorBackground"
    android:choiceMode="singleChoice"
    android:drawSelectorOnTop="false"
    android:fadingEdge="none"
    android:fastScrollEnabled="true"
    android:scrollingCache="true" />

...

以及列表项的布局:

...

<ImageView
    android:id="@+id/folder_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingRight="5dip"
    android:paddingTop="3dip"
    android:src="@drawable/icon_folder" />

<TextView
    android:id="@+id/fol_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/folder_image"
    android:textSize="22dip" />

...

ListView 是使用 从数据库填充的>setListAdapter(SimpleCursorAdapter)。对于每一行,我想显示一个图像(文件夹图标)。但是,对于两个特定的行(假设我知道如何使用例如某种指示器来识别行),我想显示不同的图像。假设我有未确定数量的文件夹,并且文件夹名称旁边的每一行都会显示一个文件夹图标。我们还假设我有一个 Word 文档和一个 Excel 文件,各有一个,并且我想为每个文件显示适当的图像。

I have a ListView:

...

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="?android:attr/colorBackground"
    android:cacheColorHint="?android:attr/colorBackground"
    android:choiceMode="singleChoice"
    android:drawSelectorOnTop="false"
    android:fadingEdge="none"
    android:fastScrollEnabled="true"
    android:scrollingCache="true" />

...

And a layout for the list items:

...

<ImageView
    android:id="@+id/folder_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingRight="5dip"
    android:paddingTop="3dip"
    android:src="@drawable/icon_folder" />

<TextView
    android:id="@+id/fol_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/folder_image"
    android:textSize="22dip" />

...

The ListView is populated from a database using a setListAdapter(SimpleCursorAdapter). For each row, I want to display an image (a folder icon). However, for two specific rows (assume I know how to identify the rows using, for example, some sort of indicator) I'd like to display different images. Let's assume that I have an undetermined number of folders and a folder icon will be displayed for each row along side the folder's name. Let's also assume that I have, for example, a Word doc and an Excel file, exactly one of each, and I'd like to display the appropriate images for each.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

执笏见 2024-09-25 08:46:39

与 Stealthcopter 所写的类似,您需要扩展 SimpleCursorAdapter 并重写 bindView() 来实现您的图标选择算法。这是来自 免费摘录 “ rel="nofollow noreferrer">我的一本讨论该技术的书。

Akin to what stealthcopter wrote, you will need to extend SimpleCursorAdapter and override bindView() to implement your icon-selection algorithm. Here is a free excerpt from one of my books that discusses the technique.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文