0
    playButton.setOnTouchListener(new OnTouchListener() 
    {
        @Override
        public boolean onTouch(View arg0, MotionEvent arg1)
        {
            switch(arg1.getAction())
            {
                case MotionEvent.ACTION_DOWN:
                {
                    playButton.setImageBitmap(res.getDrawable(R.drawable.play_pushed));
                    break;
                }

                case MotionEvent.ACTION_CANCEL:
                {
                    playButton.setImageBitmap(res.getDrawable(R.drawable.play));
                    break;
                }
            }

            return true;
        }
    });

两个 res 关键字用红色下划线标出。只需在触摸时尝试将图像更改为自身的较暗版本。所有必要的图像都位于 res 文件夹中。知道问题是什么吗?

更新:稍微更新了代码,现在它可以完美运行:

    playButton.setOnTouchListener(new OnTouchListener() 
    {
        @Override
        public boolean onTouch(View arg0, MotionEvent arg1)
        {
            switch(arg1.getAction())
            {
                case MotionEvent.ACTION_DOWN:
                {
                    playButton.setImageDrawable(getResources().getDrawable(R.drawable.play_pushed));
                    break;
                }

                case MotionEvent.ACTION_UP:
                {
                    playButton.setImageDrawable(getResources().getDrawable(R.drawable.play));
                    break;
                }
            }

            return true;
        }
    });
4

3 回答 3

2

尝试将它们更改为

getResources().getDrawable(...)

由于您在听众内部,因此您可能需要ActivityName.this.getResources().getDrawable()

playButton.setImageBitmap(getResources().getDrawable(R.drawable.play_pushed));

res是文件夹名称,但它不是您声明的变量,因此系统不知道它是什么。

获取资源()

于 2013-07-31T18:31:56.510 回答
0
ImageView IV= (ImageView)findViewById(R.id.imageView1);  
resID = getResources().getIdentifier(drawableName, "drawable",  getPackageName());
IV.setImageResource(resID);

我保证这会奏效;)

于 2013-07-31T19:37:04.550 回答
0

使用资源中的选择器更好地定义您的按钮。使用这样的代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item 
    android:state_enabled="false"
    android:drawable="@drawable/green_large_btn_pressed" />
<item 
    android:state_pressed="true" 
    android:state_enabled="true"
    android:drawable="@drawable/green_large_btn_pressed" />
<item 
    android:state_focused="true" 
    android:state_enabled="true"
    android:drawable="@drawable/green_large_btn" />
<item 
    android:state_enabled="true"
    android:drawable="@drawable/green_large_btn" />

有关Android 文档中的按钮自定义样式的更多信息

于 2013-07-31T18:34:24.347 回答