1
我正在使用Android 3.2.1宏基A500(電容屏)10「平板電腦我試圖捕捉觸摸屏幕的手指區域,壓力在屏幕上,我嘗試過Motionevent.getsize(),我總是得到0的值。另外,Motionevent.getpressure()總是給我1的值。 ),和getEventTime()似乎工作的罰款。如何捕捉壓力和麪積超過觸摸屏android
我缺少的東西嗎?還有什麼是我需要做什麼?
任何幫助將大大更加感激ated。
下面是代碼:
package com.mygroup.myapp;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
public class MultiTouchTest extends Activity implements OnTouchListener{
StringBuilder builder = new StringBuilder();
TextView textView;
float[] x = new float[10];
float[] y = new float[10];
double[] p = new double[10];
float[] s = new float[10];
long[] t = new long[10];
boolean[] touched = new boolean[10];
private void updateTextView(){
builder.setLength(0);
for (int i = 0; i < 10; i++){
builder.append(touched[i]);
builder.append(", ");
builder.append(x[i]);
builder.append(", ");
builder.append(y[i]);
builder.append(", pressure = ");
builder.append(p[i]);
builder.append(", size = ");
builder.append(s[i]);
builder.append(", time = ");
builder.append(t[i]);
builder.append("\n");
}
textView.setText(builder.toString());
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
textView = new TextView(this);
textView.setText("touch:");
textView.setOnTouchListener(this);
setContentView(textView);
}
//@Override
public boolean onTouch(View v, MotionEvent event){
int action = event.getAction() & MotionEvent.ACTION_MASK;
int pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >>
MotionEvent.ACTION_POINTER_INDEX_SHIFT;
int pointerId = event.getPointerId(pointerIndex);
switch(action){
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_POINTER_DOWN:
touched[pointerId] = true;
x[pointerId] = (int)event.getX(pointerIndex);
y[pointerId] = (int)event.getY(pointerIndex);
p[pointerId] = event.getPressure(pointerIndex);
s[pointerId] = event.getSize(pointerIndex);
t[pointerId] = event.getEventTime();
break;
...
}
updateTextView();
return true;
}
}
電容屏不能,根據設計,給你加一個點的壓力。它只能給你一個位置和一個重量(即應用表面的比例)。它不能以mm2爲單位給出精確的曲面,但可以將其關聯起來。只有電阻式觸摸屏可以給您施加壓力,並且在觸摸事件上具有非常好的dpi精度。 HTH – zmo 2012-10-30 09:29:25
理查德馬丁,我有同樣的問題。我的一些電容設備給我不同的(真實)尺寸,但其他設備總是得到0.003921569。你贏了這個問題嗎? – djdance 2014-05-19 15:26:45