【问题标题】:Onclick listener with Scale Gesture带有 Scale Gesture 的 Onclick 监听器
【发布时间】:2015-10-14 19:35:39
【问题描述】:

我有一个文本视图,我在该文本视图上应用了捏缩放手势,可增加/减小缩放时文本视图的大小。我也想在它上面应用一个 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);

    }

}

【问题讨论】:

  • 请提供您的一些代码,以便我们在那里寻找错误
  • 感谢您的评论。我会尽快更新我的问题。谢谢
  • @SebastianWalla,我已经发布了我的代码,请检查。干杯

标签: android onclicklistener


【解决方案1】:

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

【讨论】:

  • 感谢您的回答。好的,我将在 oncreateview 中尝试我的代码,但在我的研究中,我发现 ontouch 事件阻塞了我的 onclick 侦听器,但我不知道如何解决这个问题
  • 你能把你的代码贴在 github 上吗……也许我们中的一些人可以玩弄它来帮助你找到解决方案。
  • 好的,我明天发帖。请检查。我会更新我的问题
猜你喜欢
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 2019-05-27
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多