如何在 TouchEvent 上更改位图资源

How To Change The Bitmap Resource On TouchEvent

这应该很简单吧?!
所以,我有一个 Gameobject 作为按钮,我在 GamePanel 上引用它,它扩展 SurfaceView 像这样:

bby = new Buttons(BitmapFactory.decodeResource(getResources(), R.drawable.babybutton),123 ,114 ,1);    

bby 已绘制且工作正常,
我的问题是如何在 Touch 上将资源 (R.drawble.babybutton) 更改为不同的资源,例如 (R.drawble.babybutton2)?

就像按下按钮的动画! 提前致谢
(如果我的问题看起来很愚蠢,请不要不喜欢!我对此很陌生)。

如果您想更改按钮在表面视图上的触摸可绘制对象。比你可以在你的表面视图中覆盖这个方法 class.

@Override
public boolean onTouch(View v, MotionEvent event) {
    switch(event.getAction()){
    case MotionEvent.ACTION_DOWN:
        //here you can set an another drawable to your button or can do something else
        break;
    }
    return true;
}

在您的 activity 中,在表面视图上设置一个 touchListener。 初始化 surfaceView 之后。将此 surfaceview 传递给

surfaceView.setOnTouchListener(surfaceView)

我可能误会了你,但如果你想改变按钮资源,你应该这样做:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                button.setBackgroundResource(R.drawable.icon);
            }
        });
    }
});