突出显示Google Play商店等GridView单元格

时间:2013-10-27 05:24:51

标签: android android-gridview

我正在尝试弄清楚如何在按下它时突出显示整个GridView单元格,就像在Google Play商店中一样。这是我正在尝试做的事情的图像(咆哮天空细胞是我想要完成的事情):

enter image description here

我知道您可以使用图像/视图的选择器,但这只会改变背景颜色,并且不会覆盖单元格中的图像(除非有一些我还没有找到的特殊技巧/开关) 。我试图在单元格的整个内容上覆盖(而不是在图像下方)半透明颜色,并且选择器似乎不会这样做。我也知道你可以使用.setColorFilter()和OnTouchListener,但这只适用于Drawables(据我所知),我认为用GridView实现会很痛苦。在Google Play商店中,整个单元格都会突出显示,并且其中包含多个不同的视图。

目前,我有一个带有自定义背景的GridView设置,使其具有类似卡片的外观。它有一个带有几个TextView的ImageView,但我无法弄清楚如何突出显示整个GridView单元格(覆盖半透明颜色)。通常我会提供代码,但在这种情况下,我不确定它会有所帮助,因为我目前得到的是非常标准的。关于如何实现这一点的任何想法?

2 个答案:

答案 0 :(得分:1)

你走了。

在xml中使用属性drawSelectorOnTop =“false”。

或尝试mGridview.setDrawSelectorOnTop(true)

希望有所帮助。

答案 1 :(得分:0)

试试这个,

可以通过选择器来实现。

在grid_cell_item的根布局上使用选择器作为背景

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/artists_list_backgroundcolor"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/home_grid_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:contentDescription="@string/app_name" />

    <TextView
        android:id="@+id/home_grid_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/home_grid_img"
        android:layout_centerHorizontal="true"
        android:textColor="#7a7a7a"
        android:textSize="12sp"
        android:textStyle="bold" />

</RelativeLayout>

<强> artists_list_backgroundcolor.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item 
 android:state_selected="false"
    android:state_pressed="false" 
    android:drawable="@color/white" />
<item android:state_pressed="true" 
    android:drawable="@color/itemselected" />
<item android:state_selected="true"
 android:state_pressed="false" 
    android:drawable="@color/itemselected" />
</selector> 

<强> colors.xml

<resources>
    <color name="white">#ffffff</color>
    <color name="itemselected">#EDEDED</color>

</resources>

希望这会对你有所帮助。