我动态创建视图,我正常处理他们的点击事件,如下所示:
myView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setBackgroundColor(0xaaffffff);
}
});
但是此代码不处理onRelease
事件,因此点击后视图仍为白色背景。
那么当点击状态结束时,如何将背景设置为另一个值?
提前致谢!
OnTouchListener
做同样的事情。我想我需要像onReleaseListener
这样的东西?
答案 0 :(得分:3)
为此您需要使用onTouchListener
=> documentation
请参阅此tutorial了解如何使用此功能。
示例:
myView.setOnTouchListener(
new View.OnTouchListener() {
public boolean onTouch(View myView, MotionEvent event) {
int action = event.getAction();
if (action==MotionEvent.ACTION_MOVE)
{
myView.setBackgroundColor(Color.BLUE);
}
if (action==MotionEvent.ACTION_UP)
{
myView.setBackgroundColor(Color.RED);
}
if (action==MotionEvent.ACTION_DOWN)
{
myView.setBackgroundColor(Color.YELLOW);
}
// TODO Auto-generated method stub
return true;
}
}
答案 1 :(得分:1)
Android有一个选择器。在可绘制文件夹的xml文件中定义它并将其用作背景:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/YOURDRAWABLE" />
<item android:state_pressed="true" android:drawable="@drawable/YOURDRAWABLE_WHEN_CLICKED" />
</selector>
答案 2 :(得分:0)
状态列表适用于状态更改的样式更新。看一下这个。 http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList