尝试了一下写钢琴的多点。
想问一下因为多点是按X Y坐标实现的。而我钢琴的每一个键都是一个button。请问除了自己找坐标之外没有其他的实现方式了么。
请各位看官看看下面加上线程安全锁的代码能不能实现?或者说这种情况需不需要加上安全锁。
SurfaceHolder musicHolder = null;
// 在这里加上线程安全锁
synchronized (musicHolder) {
/** 拿到钢琴 然后锁定 **/
//未实现
if (!reset) {
/** 在屏幕中拿到同时触碰的点的数量 **/
int pointCount = event.getPointerCount();
/** 使用循环将每个触摸点对应的button播放出来 **/
for (int i = 0; i < pointCount; i++) {
/** 根据触摸点的ID 可以讲每个触摸点的X Y坐标拿出来 **/
int x = (int) event.getX(i);
int y = (int) event.getY(i);
//下面判断x y对应的button。并用soundpool实现播放
if(x>**&&x<**) soundpoolview.play(**);
}
}else {
//错误处理
}
/** 绘制结束后解锁 **/
//未实现
}
想问一下因为多点是按X Y坐标实现的。而我钢琴的每一个键都是一个button。请问除了自己找坐标之外没有其他的实现方式了么。
请各位看官看看下面加上线程安全锁的代码能不能实现?或者说这种情况需不需要加上安全锁。
SurfaceHolder musicHolder = null;
// 在这里加上线程安全锁
synchronized (musicHolder) {
/** 拿到钢琴 然后锁定 **/
//未实现
if (!reset) {
/** 在屏幕中拿到同时触碰的点的数量 **/
int pointCount = event.getPointerCount();
/** 使用循环将每个触摸点对应的button播放出来 **/
for (int i = 0; i &lt; pointCount; i++) {
/** 根据触摸点的ID 可以讲每个触摸点的X Y坐标拿出来 **/
int x = (int) event.getX(i);
int y = (int) event.getY(i);
//下面判断x y对应的button。并用soundpool实现播放
if(x>**&&x<**) soundpoolview.play(**);
}
}else {
//错误处理
}
/** 绘制结束后解锁 **/
//未实现
}
解决方案 »
- android Canvas中旋转问题
- android 怎么得到最近使用过的程序?
- 请教
- set mAudioSourceType = MediaRecorder.AudioSource
- 继承Button类设置宽高的问题
- 求助android对1024*600的屏幕支持
- Android ScrollView 的内容显示不全
- android系统用代码实现蓝牙条码枪或者蓝牙键盘的连接
- 请教,java写的服务器代码,安卓写客户端,无法互传数据
- 求教:startActivity(intent)报错
- SDK 4.0虚拟设备无法加载?
- 我写的android应用程序在模拟器上可以全屏显示但在真机上不能,为什么?那个地方设置不对?
2.button无法实现多点。
3.看上面的框架貌似可以,实现看看吧。