我正在为多个设备设计一个应用程序。我正在使用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>
提前致谢。
答案 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中使用它。