作为开发人员,我倾向于先编程,然后再进行研究.我试图实现一个可以处理多个用户输入的屏幕.基本上不只是一个手指映射.我尝试了两件事......
我有一个实现OnTouchListener的Activity类.在这里,我有两个独立的子视图,将Activity添加为ontouch侦听器.然后我有一个打印出来的事件,打印出event.getPointerCount()并打印出每个指针的位置.
将其下载到手机并进行测试.我注意到指针从未超过两个.我甚至注意到,如果一个手指放在一个孩子身上,另一个手指放在另一个孩子身上,那么事件只会发生在第一个子组件上.接下来,我尝试在每个子组件上放置单独的侦听器,以查看它是否有效但操作相同.
因此,似乎android在处理来自触摸屏幕的用户的输入时仅支持总共两个用户输入.
这是真的?从测试和研究看来,情况确实如此.
有没有人遇到这个限制.任何聪明的工作?
谢谢你的时间和回应.
DK
我一直在搞乱Android API的AudioRecord功能,并发现了一些奇怪的行为.
背景信息:我的手机是HTC Incredible我使用Eclipse插件进行Android开发与模拟器.目标平台或操作系统是2.2 ...因为它是我的手机使用的.
一些代码:
bufferSize = AudioRecord.getMinBufferSize(FREQUENCY, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, FREQUENCY, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
Run Code Online (Sandbox Code Playgroud)
这是我用来设置AudioRecord API的代码.现在,对于模拟器,它将FREQUENCY设置为8000以使其工作.回来的缓冲区大小为640.对于手机,我使用44100.这里的一个问题是看起来波形的PCM数据似乎是8位有符号波.我得到的值从-127到128.我认为价值AudioFormat.ENCODING_PCM_16BIT会产生不同的东西.
我用线程处理音频,
public void run() {
while(isRecording) {
audioRecord.startRecording();
byte[] data = new byte[bufferSize];
audioRecord.read(data, 0, bufferSize);
listener.setData(data);
handleData(data);
}
audioRecord.release();
}
Run Code Online (Sandbox Code Playgroud)
我有一种方法可以使用a以图形方式实时显示相应的波形SurfaceView.MIC似乎有很多噪音.我也从模拟器和手机中得到了这个噪音.我是否需要通过某种过滤器运行数据?我想用这些数据计算一些有趣的FFT和东西只是为了解决这个问题.但我需要以某种方式减少噪音.
有没有其他人经历过这一点.有没有人有办法解决吗?
我很感激你的时间和回应,谢谢,dk