gpt4 book ai didi

java - 触摸项目时如何设置自定义背景颜色?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:17 26 4
gpt4 key购买 nike

我基本上想在触摸时自定义列表项的背景颜色。我厌倦了编写监听器,但似乎我犯了某种错误或误解了这些操作的概念。

v.setOnTouchListener( new TextView.OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
v.setBackgroundColor(Color.RED);
break;
case MotionEvent.ACTION_UP:
v.setBackgroundColor(Color.WHITE);
break;
}

return false;
}
}
);

默认颜色为浅蓝色。我想为每个列表项更改它。此代码在触摸时将项目颜色更改为红色,但之后不会变回。

最佳答案

但也许最好的方法是使用颜色状态...在颜色文件夹中创建一个文件 mycolors.xml:

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ff0000"/> <!-- pressed -->
<item android:color="#ffffff"/> <!-- default -->
</selector>

然后您可以像这样设置 View 的背景:在布局 xml 中设置 android:background="@color/mycolors"或像这样以编程方式设置 View 的背景:v.setBackgroundColor(getResources().getColor(R.color.mycolors) ;

在这种情况下不需要点击或触摸监听器..一切都会神奇地发生。

更多信息:http://developer.android.com/guide/topics/resources/color-list-resource.html

关于java - 触摸项目时如何设置自定义背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com