【发布时间】:2012-04-03 16:59:35
【问题描述】:
我想要一个 ListView,在每个项目(星号)中都有一个图像,并且该图像是可点击的。换句话说,用户可以单击 ListView 每一行的星号,我想为此定义单击操作。我该怎么做?
【问题讨论】:
-
这个问题会在 SO 上重复多少次。请在这个网站上搜索,仅它就有几十个自定义listview相关问题
标签: java android image listview
我想要一个 ListView,在每个项目(星号)中都有一个图像,并且该图像是可点击的。换句话说,用户可以单击 ListView 每一行的星号,我想为此定义单击操作。我该怎么做?
【问题讨论】:
标签: java android image listview
添加一个 imageView.. 通过将其添加到您的 ImageView 标记使其可点击:
android:clickable="true"
android:focusable = "false"
【讨论】:
您可以使用 ImageButton,
http://developer.android.com/reference/android/widget/ImageButton.html
您也可以简单地使图像可点击,并将其设置为 onClickListener(),
然而,这样做的问题是当点击图像时不会有视觉反馈给用户。图片按钮的外观和行为类似于按钮,如果您愿意提供正常、按下等版本的图片,您可以在图片按钮上附加一个可绘制的状态列表,使其看起来非常专业。
http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html
【讨论】:
你可以制作一个类似的 ImageButton
<ImageButton
android:id="@+id/sound_button"
android:layout_x="430px"
android:layout_y="219px"
android:layout_width="48px "
android:layout_height="48px"
android:scaleType="center"
android:src="@android:drawable/volumeicon"
android:background="@drawable/clearbuttonup"
/>
并创建一个新的 xml 并将其命名为选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
或者你创建一个 Imageview 并设置 ImageView isClickable="true"
【讨论】: