gpt4 book ai didi

java - 在android studio中的OnTouch方法中设置背景

转载 作者:行者123 更新时间:2023-12-02 08:41:13 24 4
gpt4 key购买 nike

我正在 android studio 中创建一个钢琴应用程序。我正在使用 onTouch() 方法来检查用户是否按下了按钮,然后播放声音。我为钢琴键创建了两种可绘制资源,一种是在未按下钢琴键时使用,另一种是在按下钢琴键时使用。如何在 onTouch() 方法中设置条件,以便在按下钢琴键和未按下钢琴键时将背景设置为相应的可绘制资源?谢谢!

这是代码MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
...

@Override
public boolean onTouch(View v, MotionEvent event) {
switch (v.getId()) {
case R.id.p1:
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:{
//set the background to key_pressed
soundPoolObject.play(c3, 1, 1, 0, 0, 1);
break;}
case MotionEvent.ACTION_UP:{
//set the background to key_normal
soundPoolObject.pause(c3);
break;}
}
}

return true;
}
}

可绘制资源key_pressed.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#00000000" />
</shape>
</item>
<item android:top="10dp">
<shape android:shape="rectangle">
<corners android:radius="5dp" />
<solid android:color="#FFFFFF"/>
</shape>
</item>
</layer-list>

可绘制资源key_normal.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/black_shadow"/>
<item android:bottom="10dp" >
<shape android:shape="rectangle" >
<corners android:radius="5dp" />
<solid android:color="#FFFFFF"/>
</shape>
</item>
</layer-list>

最佳答案

试试这个:

...
case R.id.p1:
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:{
//set the background to key_pressed
v.setBackgroundResource(R.drawable.key_pressed);
soundPoolObject.play(c3, 1, 1, 0, 0, 1);
break;}
case MotionEvent.ACTION_UP:{
//set the background to key_normal
v.setBackgroundResource(R.drawable.key_normal);
soundPoolObject.pause(c3);
break;}
}
...

关于java - 在android studio中的OnTouch方法中设置背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61384866/

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