【问题标题】:Parent View Scaling OnClickListener父视图缩放 OnClickListener
【发布时间】:2021-12-08 16:27:06
【问题描述】:

解决方案

Original: Window Service > Parent Layout > Views
Fixed: Window Service > Parent Layout > Parent Layout 2 > Views

在添加到窗口服务之前,您不能将不是子布局的父布局用于另一个布局。如果这样做,只有图形会缩放。


问题

我有一个 RelativeLayout,它包含一些视图,如 TextView、SeekBar 和 Button。使用setScaleX/Y,我可以成功地在视觉上缩放视图。我现在遇到的一个问题是,虽然图形已经缩放,但 onClickListeners 触摸区域并没有随着图形一起缩放。我需要触摸原始位置才能触发任何这些事件。我希望触摸区域与图形一起缩放,而不是单独缩放孩子。

当前缩放代码:

size.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
   @Override
   public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
      /** Max Progress is 100 **/
      float scale = 1.0f;
      scale = scale + 0.01f * progress;

      /** mLayout is Parent Layout **/
      mLayout.setScaleX(scale);
      mLayout.setScaleY(scale);
      mLayout.invalidate();
  }

  @Override
  public void onStartTrackingTouch(SeekBar seekBar) {
  }

  @Override
  public void onStopTrackingTouch(SeekBar seekBar) {
  }
});

【问题讨论】:

  • 我使用的布局是直接添加到窗口服务中的。通过在我使用的旧布局中使用新布局,我能够缩放触摸区域以及图形。在添加到窗口服务之前,您不能将不是子布局的父布局用于另一个布局。

标签: graphics touch listener parent scaling


【解决方案1】:

解决方案

Original: Window Service > Parent Layout > Views
Fixed: Window Service > Parent Layout > Parent Layout 2 > Views

在添加到窗口服务之前,您不能将不是子布局的父布局用于另一个布局。如果这样做,只有图形会缩放。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多