Onclick listener with Scale Gesture



我有一个textview,我已经应用了一个缩放手势,在缩放时增加/减少文本视图的大小。我还想在它上面应用一个onclick监听器但是当我应用那个onclick不工作时。我在网上搜索过,但没有找到解决方案。如果有人帮忙,我将不胜感激。

我代码:

package com.zeeshanfirstapp;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView textView = (TextView) findViewById(R.id.textView);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.v("ACtion", "Clicked");
            }
        });
        final ScaleGestureDetector scaleGestureDetector = new ScaleGestureDetector(this, new ScaleGestureDetector.OnScaleGestureListener() {
            @Override
            public boolean onScale(ScaleGestureDetector detector) {
                float size = textView.getTextSize();
                float factor = detector.getScaleFactor();
                float product = size*factor;
                textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, product);
                textView.invalidate();
                return true;
            }
            @Override
            public boolean onScaleBegin(ScaleGestureDetector detector) {
                return true;
            }
            @Override
            public void onScaleEnd(ScaleGestureDetector detector) {
            }
        });
        View.OnTouchListener listener = new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return scaleGestureDetector.onTouchEvent(event);
            }
        };
        textView.setOnTouchListener(listener);
    }
}

你应该在onCreateView中执行视图调整,因为当onCreate()被调用时,视图可能没有完全创建。

最新更新