【问题标题】:Create a layout larger then screen创建比屏幕更大的布局
【发布时间】:2014-03-04 15:03:42
【问题描述】:

我想创建一个比屏幕大的布局 (RelativeLayout),大约 3500*3500。 它在各种位置上都有子代,它们也使用触摸事件来改变它们的位置。

我现在所做的是,将布局缩小到用户可以看到所有视图的水平。

我的问题是,如果布局没有缩放(实际大小为 3500*3500),如何滚动布局以查看所有子视图?

@Override
protected void dispatchDraw(Canvas canvas) {

    //Save the canvas to set the scaling factor returned from detector
    canvas.save(Canvas.MATRIX_SAVE_FLAG);

    canvas.scale(mScaleFactor, mScaleFactor,gx,gy);

    //canvas.translate(tx, ty);
    super.dispatchDraw(canvas);

    mClipBound = canvas.getClipBounds();

      canvas.restore();
}

我想知道是否可以在触摸移动中使用 canvas.translate(x, y)?请推荐?

【问题讨论】:

  • 您考虑过为此使用 GridLayout 吗?我认为您要求的方法可能容易出现问题,并且 GridLayout 可能会用于您所追求的。如果在这种情况下您不能使用 GridLayout,您能否提供更多信息,为什么会这样?
  • @PSIXO 我无法使用 gridview。更清楚地说,我想要一个像 web 视图这样的布局。可以放大缩小&可以滚动。除了我的布局的子视图也是可移动的。

标签: android android-layout touch


【解决方案1】:

Android 已经附带了一个专用于所有滚动业务的视图容器:ScrollView

【讨论】:

  • 是的,我知道,但滚动视图是单向的。我的布局在两个方向上都更大。我还通过添加两个滚动视图尝试了双向滚动视图,但这不起作用,因为我必须放大和缩小布局。
  • @Kamal 在这里查看我的答案stackoverflow.com/questions/19267763/…
  • @pskink 我知道这是一个蹩脚的问题,但我可以用相对布局而不是 ViewGroup 来扩展你的课程吗?
  • @pskink 我还必须提供缩小功能,以便我可以一次看到所有子视图。尝试对您的代码进行一些更改..有什么想法吗?
  • @Kamal 覆盖 dispatchDraw ?
猜你喜欢
  • 2020-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
  • 1970-01-01
相关资源
最近更新 更多