Android: SurfaceView oprește desenarea unui al treilea deget

Următorul cod este codul real utilizat într-o aplicație de testare, într-o clasă care extinde suprafațaView.

@Override
public void onDraw(Canvas canvas)
{       
    canvas.drawCircle(touched_x, touched_y, 50, myPaint);
}

@Override
public boolean onTouchEvent(MotionEvent event)
{
    touched_x = event.getX();
    touched_y = event.getY();  
    return true;    
}

It basically draws where your finger goes. To test if its tracking or not.

Adding a second finger, and you can still tracks your first. But add a 3rd, and it just stops. It doesnt matter what you do from there. Unless you remove all fingers and start again it wont track.

Acum, aceasta este o problemă, deoarece uneori crede că un deget este de trei! Pot depăși această distanță de testare între degete, dar tot nu rezolvă problema.

Când al treilea deget lovește și blochează urmărirea. Nu invocă acțiune.

Este vital să știu unde și când se eliberează primul deget.

Cu toate acestea, crede că ultimul eveniment a fost MotionEvent.ACTION_MOVE . Nu MotionEvent.ACTION_UP sau MotionEvent.ACTION_CANCEL .

În prezent, deoarece un deget poate fi de trei. Aplicația mea va părea că nu a reușit să încarce o imagine de parcurgere dată.

0
Nu mă descurc, nu mă interesează degetul al treilea. Cu excepția faptului că oprește primul deget.
adăugat autor Doomsknight, sursa
poți să-ți arăți codul în care se ocupe de atingerea a trei degete?
adăugat autor alaster, sursa

1 răspunsuri

float x1 = -100, y1;

@Override
protected void onDraw(Canvas canvas) {
    Paint paint = new Paint();
    paint.setAntiAlias(true);
    canvas.drawColor(Color.WHITE);

    paint.setColor(Color.RED);
    canvas.drawCircle(x1, y1, 30, paint);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    x1 = event.getX();
    y1 = event.getY();

    invalidate();
    return true;
}

Maybe you have bugs on your device, but that's unlikely..

0
adăugat
Im folosind One X. Funcționează bine pe tableta Samsung. Ar putea fi un bug.
adăugat autor Doomsknight, sursa
Android dezvoltatori, România — Moldova
Android dezvoltatori, România — Moldova
27 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro iOS: @ro_ios Reguli: https://github.com/js-ro/it-telegram/blob/master/RULES.md