2017-04-19 3 views
1

Ich habe Pinch Zoom für eine TextView mit dem folgenden Code implementiert. Aber mit dem Code TextView zoomt auch wenn ein Benutzer irgendwo auf dem Bildschirm klemmt. Ich muss den Pinch-Zoom nur ausführen, wenn der TextView gequetscht wird. Kann mir jemand helfen?Wie erkennt man die Ansicht, die in Android gezoomt wird?

Meine vorhandenen Code:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    // return super.onTouchEvent(event); 
    if (event.getPointerCount() == 2) 
    { 
     int action = event.getAction(); 
     int pureaction = action & MotionEvent.ACTION_MASK; 

     if (pureaction == MotionEvent.ACTION_POINTER_DOWN) 
     { 
      mBaseDist = getDistance(event); 
      mBaseRatio = mRatio; 
     } 
     else 
     { 
      float delta = (getDistance(event) - mBaseDist)/STEP; 
      float multi = (float) Math.pow(2, delta); 
      mRatio = Math.min(1024.0f, Math.max(0.1f, mBaseRatio * multi)); 
      mTextView.setTextSize(mRatio + 13); 
     } 
    } 
    return true; 

} 

Antwort

1

Versuchen setOnTouchListener und außer Kraft setzen onTouch Methode, die geben Ansicht berührt zu werden.

public boolean onTouch(View v, MotionEvent event) { 
    //v is view touched 
} 
1
TextView YOUR_TEXTVIEW = (TextView) findViewById(R.id.textView);  

YOUR_TEXTVIEW.setOnTouchListener(new OnTouchListener(){ 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      //Your Code 
     } 
    }); 

Bedingung Zum View Touch

 @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if(v.getId() == R.id.textView){ 
      //Your Code 
      } 
     } 
Verwandte Themen