我正在创建一个游戏,其中包含一些地图(图像),顶部有一些功能(其他图像)。到目前为止,我正在使用子类视图并使用onDraw
方法绘制所有内容,但我希望将图像保持为ImageView
- s,以便我可以为它们设置动画(淡入时使用Android内置方法创建,移动等。
所以我有以下结构:
FrameLayout (match_parent)
AbsoluteLayout (match_parent)
map: ImageView
feature1: ImageView
...
由于地图大于视口,我想对其应用比例。虽然可以对每个单独的图像应用相同的比例,但我希望保持所有特征图像的坐标相对于地图的规范尺寸,并将主比例应用于单个位置,即AbsoluteLayout。问题在于,当我设置scaleX
和scaleY
时,会剪切子图像:显示的唯一部分是未应用比例时显示的部分。
这是没有应用比例的情况:
device screen
,--------------.
| @@@@@@@@@@@@ | @@@@@
| @........... | .....
| @........... | imaginary map continues
| @........... | .....
| @...big map. | .....
| @........... | .....
| @........... | .....
| @........... | .....
| @........... | .....
| @........... | .....
`--------------'
@........... .....
@........... .....
当我应用比例时,我看到了这一点:地图的相同部分是可见的,但是缩放了。
,--------------.
| @@@@ |
| @... |
| @... |
| @... |
| |
| |
| |
| |
| |
| |
`--------------'
我想实现这个目标:
,--------------.
| @@@@@@@@@@@@ |
| @..........@ |
| @..scaled..@ |
| @...map....@ |
| @..........@ |
| @..........@ |
| @@@@@@@@@@@@ |
| |
| |
| |
`--------------'
即将缩放应用于包含布局,但使其绘制“溢出”,而不是剪辑它。
有一种简单的方法吗?
答案 0 :(得分:0)
This answer有我需要的东西:只需在外部容器(FrameLayout)上设置CREATE TABLE `bitcoinprice` (
`list_id` varchar(7) CHARACTER SET utf8 DEFAULT NULL,
`list_name` varchar(7) CHARACTER SET utf8 DEFAULT NULL,
`list_symbol` varchar(3) CHARACTER SET utf8 DEFAULT NULL,
`list_rank` int(11) DEFAULT NULL,
`list_price_usd` decimal(7,6) DEFAULT NULL,
`list_price_btc` decimal(9,8) DEFAULT NULL,
`list_24h_volume_usd` decimal(10,1) DEFAULT NULL,
`list_market_cap_usd` decimal(12,1) DEFAULT NULL,
`list_available_supply` decimal(12,1) DEFAULT NULL,
`list_total_supply` bigint(20) DEFAULT NULL,
`list_max_supply` int(11) DEFAULT NULL,
`list_percent_change_1h` decimal(2,1) DEFAULT NULL,
`list_percent_change_24h` decimal(3,2) DEFAULT NULL,
`list_percent_change_7d` decimal(3,1) DEFAULT NULL,
`list_last_updated` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
。