2017-04-19 7 views
1

以下のコードを使用してTextViewのピンチズームを実装しました。 しかし、TextViewのコードでは、ユーザーが画面上のどこにいてもズームインします。 TextViewが挟まれている場合にのみ、ピンチズームを動作させる必要があります。 誰かが私を助けてくれますか?Androidでピンチズームされているビューを特定するにはどうすればよいですか?

私の既存のコード:

@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; 

} 

答えて

1

setOnTouchListenerを使用して試してみて、触れてビューを与えるonTouchメソッドをオーバーライド。

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 
     } 
    }); 

ビュータッチする条件

 @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if(v.getId() == R.id.textView){ 
      //Your Code 
      } 
     } 
関連する問題