ImageView未在点击时突出显示

时间:2013-08-26 13:19:48

标签: android xml imageview

我正在为多个设备设计一个应用程序。我正在使用imageview并使用选择器我设置背景图像取决于state.I适用于所有设备,只有一个10英寸设备。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true" >

    <LinearLayout
        android:layout_width="145dp"
        android:layout_height="239dp"
        android:layout_marginRight="6dp"
        android:background="@drawable/common_selector_thumbnail_shadow_title_background"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingLeft="5dp"
        android:paddingRight="5dp" >

        <FrameLayout
            android:layout_width="130dp"
            android:layout_height="186dp"
            android:layout_marginTop="5dp"
            android:background="@color/RGB_100_215_216_217" >

            <ImageView
                android:id="@+id/seasonal_favorites_default_image"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="center"
                android:src="@drawable/tw_noitem_movie" />


        </FrameLayout>

        <TextView
            android:id="@+id/seasonal_favorites_list_text"
            android:layout_width="140dp"
            android:layout_height="43dp"
            android:duplicateParentState="true"
            android:ellipsize="end"
            android:gravity="center_vertical"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:singleLine="true"
            android:textColor="@drawable/common_selector_thumbnail_shadow_title_textcolor"
            android:textSize="18dp" />
    </LinearLayout>

</FrameLayout>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/thumbnail_title_bg_focus" android:state_focused="true" android:state_pressed="true"/>
    <item android:drawable="@drawable/thumbnail_title_bg_focus" android:state_pressed="true"/>
    <item android:drawable="@drawable/thumbnail_title_bg_focus" android:state_focused="true"/>
    <item android:drawable="@drawable/thumbnail_title_bg"/>

</selector>

提前致谢。

5 个答案:

答案 0 :(得分:0)

概率地,您必须输入清单文件:hardwareAccelerated="true"
    尝试一下,让我知道它是否有效!

答案 1 :(得分:0)

使用ImageButton有两种方法setBackgroundResource,setImageResource设置按钮的资源(将按下哪一个)和图像本身

答案 2 :(得分:0)

您需要将android:clickable="true"添加到LinearLayout或在那里设置OnClickListener。否则,您的选择器背景不会被激活。

答案 3 :(得分:0)

使用ImageButton而不是ImageView来使选择器工作。

答案 4 :(得分:0)

如果您可以提供图像的不同状态,请查看此内容 post

...否则

对图像源使用LayerDrawable。一层是实际图像,另一层是状态列表选择器。

LayerDrawable d = new LayerDrawable(new Drawable[]{getResources().getDrawable(R.drawable.my_image), getResources().getDrawable(R.drawable.my_selector_list)});
imageView.setImageDrawable(d);

或者您可以定义图层可绘制XML资源,并在布局XML中使用它。