0

我正在为多个设备设计一个应用程序。在我使用图像视图和使用选择器时,我设置的背景图像取决于状态。我适用于所有设备,除了只有一个 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>

提前致谢。

4

5 回答 5

0

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

于 2013-08-26T14:03:02.073 回答
0

如果您可以提供图像的不同状态,请参阅此 帖子

否则...

使用 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 中使用它。

于 2013-09-18T18:31:06.723 回答
0

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

于 2013-08-26T13:27:09.423 回答
0

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

于 2013-08-26T13:25:19.337 回答
0

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

于 2013-08-26T14:57:11.520 回答