java - 尝试在触摸时更改图像资源,然后在发布时更改回来

标签 java android

当用户触摸 ImageView 时,我正在更改可绘制资源,当他们释放时,它会恢复为默认值。我在网上复制了一些代码,应该可以工作,但不能。我在收到的错误中发表了评论

final ImageView green = (ImageView) findViewById(R.id.Green);
green.setOnTouchListener(new OnTouchListener() { //cannot resolve symbol setOnTouch...
                          //^^Invalid method declaration return type required
    @Override
    public boolean onTouch(View view, MotionEvent event) { //cannot resolve symbol view/event
        switch (event.getAction()) { //cannot resolve symbol event
            case MotionEvent.ACTION_DOWN: { //constant expression required
                green.setImageResource(R.drawable.green_square);
                break;
            }
            case MotionEvent.ACTION_UP: { //constant expression required
                green.setImageResource(R.drawable.blank_square);
                break;
            }
        }
        return false; // cannot return a value of type void
    }
});

最佳答案

将选择器定义为:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/green_square"/>
    <item android:state_pressed="false" android:drawable="@drawable/blank_square"/>
</selector>

并在布局 xml 中,将 src 设置为上面的选择器。

关于java - 尝试在触摸时更改图像资源,然后在发布时更改回来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41861958/

相关文章:

java - 如何检查两个字符串是否具有相同的字母,但只打印一次相同的字母?

Android aws cognito 登录 token 无效。不是 Cognito token

android - 光标移动到输入文本的左侧,而不是在 Honeycomb 上移动到右侧

java - 尝试在空对象引用上调用虚拟方法 'android.view.Window$Callback android.view.Window.getCallback()'

android - Firebase Android - 如何查询不等于

java - 从域对象中访问 Spring 单例的好方法?

java - Camel CxfEndpoint 拦截器失败

android - 在 TimePicker 中设置时间并将其与 calendar.hour 和 minute 进行比较?

java - 如何将 apache-httpclient-4.x 连接到 axis2 stub

java - 应为 BEGIN_ARRAY,但在第 1 行第 5 列为 STRING