gpt4 book ai didi

android - 如何在 Android 中的 ListView 项的底部添加一个简单的条形图?

转载 作者:行者123 更新时间:2023-11-29 21:52:37 27 4
gpt4 key购买 nike

我正在使用自定义 XML 布局 listview_goal_item.xml 来表示我希望我的 ListView 项目如何显示。此 XML 布局被馈送到适配器:

cursor_adapter_goals = new SimpleCursorAdapter(this,
R.layout.listview_goal_item,
matrix_cursor_goals, listview_fields, listview_columns);

一切正常,我可以很容易地理解如何在 listview_fields(我的值的字符串数组)和 listview_columns(我的自定义 ListView 布局中目标小部件的字符串数组)中显示所有信息,因为它们之间存在直接的固定关系这些项目。

我想为 ListView 中的每个目标项显示一个固定的“进度”条形图。这个条形图将是用户基于他们实现目标的百分比的简单视觉表示,75% 意味着条形图将占据 ListView 宽度的 3/4,50% 1/2 宽度等。这就是我感到困惑的地方。

我应该如何处理这个问题?我应该创建某种动态的 9 补丁图像吗?我是否应该创建一个简单的表格,其中一行在黑色表格背景上使用对比色动态调整大小?

如果您能以编程方式和所需的 XML 将我推向正确的方向,我将不胜感激!

最佳答案

在您的item 布局的底部添加一个 ProgressBar,这是我用来作为 ListView 项的整个背景的一个(作为 FrameLayout 的一个元素,另一个元素是包含列表项的其余部分、TextViews 等的布局):

 <ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="0dp"
android:padding="0dp"
android:progressDrawable="@drawable/progress_timer" />

根据需要更改layout_*等。

注意使用的可绘制对象。引用的可绘制对象只是一个图层列表,其中包含进度条可绘制对象所需的 id 项。另外请注意背景设置为透明:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@android:id/background"
android:drawable="@android:color/transparent"/>
<item android:id="@android:id/secondaryProgress">
<scale
android:drawable="@color/..."
android:scaleWidth="100%" />
</item>
<item android:id="@android:id/progress">
<scale
android:drawable="@color/..."
android:scaleWidth="100%" />
</item>
</layer-list>

在您的代码中,您只需像对待任何 ProgressBar 一样对待它:

ProgressBar progressBar = (ProgressBar) convertView.findViewById(R.id.progressBar);

更新时:

progressBar.setMax(100); //100 for example for percent
progressBar.setProgress(20); //20% done

关于android - 如何在 Android 中的 ListView 项的底部添加一个简单的条形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14046055/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com