禁用剪裁缩放视图?

问题描述 投票:0回答:1

我正在创建一个游戏,它将在顶部显示带有某些功能(其他图像)的地图(图像)。到目前为止,我正在使用子类视图并在onDraw方法中绘制所有内容,但我想将图像保持为ImageView-s,以便我可以使用Android设置动画(在创建,移动等时淡入)内置方法。

所以我有以下结构:

FrameLayout (match_parent)
    AbsoluteLayout (match_parent)
        map: ImageView
        feature1: ImageView
        ...

由于地图大于视口,我想对其应用比例。虽然可以对每个单独的图像应用相同的比例,但我希望保持所有特征图像的坐标相对于地图的规范尺寸,并将主比例应用于单个位置,即AbsoluteLayout。问题是,当我设置scaleXscaleY时,子图像被剪裁:显示的唯一部分是如果未应用比例则显示的部分。

这是没有应用规模的情况:

  device screen
,--------------.
| @@@@@@@@@@@@ | @@@@@
| @........... | .....
| @........... | imaginary map continues
| @........... | .....
| @...big map. | .....
| @........... | .....
| @........... | .....
| @........... | .....
| @........... | .....
| @........... | .....
`--------------'
  @...........   .....
  @...........   .....

当我应用比例时,我看到了这一点:地图的相同部分是可见的,但是缩放了。

,--------------.
| @@@@         |
| @...         |
| @...         |
| @...         |
|              |
|              |
|              |
|              |
|              |
|              |
`--------------'

我想实现这个目标:

,--------------.
| @@@@@@@@@@@@ |
| @..........@ |
| @..scaled..@ |
| @...map....@ |
| @..........@ |
| @..........@ |
| @@@@@@@@@@@@ |
|              |
|              |
|              |
`--------------'

即将比例应用于包含布局,但使其绘制“溢出”,而不是剪辑它。

是否有捷径可寻?

android view drawing
1个回答
0
投票

This answer有我需要的东西:只需在外部容器(FrameLayout)上设置setClipChildren(false)

© www.soinside.com 2019 - 2024. All rights reserved.