繁体   English   中英

使用选择器设置视图背景

[英]Setting view background with selector

在我的应用程序中,我有ImageView,该ImageView以编程方式添加到其父级的onLayout方法中。 我希望它在聚焦时具有不同的背景,在按下时具有不同的聚焦,在正常状态下具有不同的聚焦。 我在值文件夹中定义了一些颜色:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="cream">#FBF9F5</color>
   <color name="green">#93D932</color>
   <color name="blue">#0095FF</color>
</resources>

然后,我在名为table_background_selector.xml的drawables文件夹中定义了选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_selected="true" android:drawable="@color/green" />:
   <item android:state_pressed="true" android:drawable="@color/blue" />:
   <item android:drawable="@color/cream" />:
</selector>

然后我初始化它的父级的onLayout方法后,尝试使用以下方法设置背景:

v.setBackground(getContext().getResources().getDrawable(R.drawable.table_background_selector));

那是IntelliJ向我展示问题的时候:

"Cannot resolve method 'setBackground(android.graphics.drawable.Drawable)'"

而且我不明白为什么,因为View类具有方法setBackground(Drawable background)

这是我用setImageResource设置的.png:

http://imgur.com/Skwzd2z

在此处输入图片说明

它的中心是透明的,现在可以显示设置为应用程序的背景,但是我希望它在按下或聚焦时显示不同的颜色

感谢您的帮助

检查您是否没有错误地导入android R文件而不是本地文件,看起来确实如此。

更新:

并设置ImageView背景,请执行以下操作:

image.setImageResource(R.drawable.your_drawable_resource);

首先清理并构建您的项目,但仍然遇到相同的错误,然后

请在导入区域中检查是否包含此声明

导入android.R;

如果是,那么您需要将包名称与include R一起使用,例如my.package.R。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM