ビューに 2 つのボタンがあり、同時にその 2 つのボタンに対して OntouchListener を有効にしたい場合は、最初のボタンに触れると 1 つのタスクが開始され、最初のボタンを押したまま 2 番目のボタンに触れると別のタスクが開始されます。どうやってそれを行うのですか?助けを待っています。
質問する
1884 次
5 に答える
6
複数のタッチを処理するonTouchListenerをそのビューに追加できます。
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
//first finger went down
break;
case MotionEvent.ACTION_MOVE:
//a touch placement has changed
break;
case MotionEvent.ACTION_UP:
//first finger went up
break;
case MotionEvent.ACTION_CANCEL:
//gesture aborted (I think this means the finger was dragged outside of the touchscreen)
break;
case MotionEvent.ACTION_POINTER_DOWN:
//second finger (or third, or more) went down.
break;
case MotionEvent.ACTION_POINTER_UP:
//second finger (or more) went up.
break;
default: break;
}
return true;
}
それぞれのケース内でボタンがクリックされているかどうかを確認してください。
于 2012-07-24T12:10:43.690 に答える
3
次のコード スニペットを試してください。
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
//first finger went down
break;
case MotionEvent.ACTION_MOVE:
//a touch placement has changed
break;
case MotionEvent.ACTION_UP:
//first finger went up
break;
case MotionEvent.ACTION_CANCEL:
//gesture aborted (I think this means the finger was dragged outside of the touchscreen)
break;
case MotionEvent.ACTION_POINTER_DOWN:
if(mFirstButton.isPressed() && mSecondButton.isPressed())
{// your code.}
break;
于 2012-07-25T05:30:23.143 に答える
2
したがって、何を達成したいのかわかりませんが、次のようなものがあります。
private boolean mFirstButtonDown = false;
@Override
public boolean onTouchEvent(MotionEvent event){
// first button onTouchEvent
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
mFirstButtonDown = true;
break;
case MotionEvent.ACTION_UP:
mFirstButtonDown = false;
break;
}
....
}
2 番目のボタンについては、ボタンがまだ保持されているかどうかを確認します。
@Override
public boolean onTouchEvent(MotionEvent event){
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
if (mFirstButtonDown && (event.getPointerCount() > 1)) {
// do task
}
}
マルチポインター (またはマルチタッチ) を使用して 2 つのボタンを同時にタッチするには、次の投稿で詳細を確認できます: Android 2.x の複数のボタンを押す
マルチポインターを理解するのに役立つもう 1 つの優れた記事は、Android 開発者に関するものです 。
上記のコードはテストされていません。アイデアが得られるはずです:)
于 2012-07-24T12:13:48.247 に答える
0
2 つの個別OnTouchListener
の を 2 つのボタンに追加して、ボタンのタッチ状態を の 2 つのブール値で示すか、親Activity
に 1 つを追加して のポインタのタッチ座標を2 つのボタンの座標。OnTouchListener
View
MotionEvent
于 2012-07-24T12:13:25.387 に答える