0

在我的应用程序中,我有 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

在此处输入图像描述

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

我会感谢任何帮助

4

2 回答 2

0

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

更新:

和设置ImageView背景这样做:

image.setImageResource(R.drawable.your_drawable_resource);
于 2013-03-28T13:45:35.980 回答
0

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

请在导入区域检查您是否包含此语句

导入android.R;

如果是,那么您需要使用包含 R 的包名称,例如 my.package.R。

于 2013-03-28T13:47:51.443 回答