我想创建一个显示国家/地区地图的活动。我想让每个地区都可以点击。
我首先尝试使用SVG数据/ javascript(see here)绘制地图并将其放在WebView中。但是,Vector Library不适用于大多数Android设备。
最好的解决方案似乎是堆积区域图像(位图格式)并使它们可以点击,但我不知道该怎么做。
很抱歉我的解释很粗糙
谢谢!
答案 0 :(得分:1)
使地图成为SurfaceView的子类,以绘制地图并覆盖onTouchEvent()过滤click(x,y)坐标。
答案 1 :(得分:1)
您可以重叠 透明网格到地图。网格由“触敏”瓷砖组成。瓷砖尺寸必须足够小,以填充地图的每个区域。每个区域都包含一定数量的图块。您需要将每组图块与包含区域相关联。然后,在每次点击图块时,您都可以关联正确的区域。
编辑:图块定义的示例
public class MapView extends ViewGroup {
// Tile definition
//
static enum Tile {
T_00 (30, Region.region_a), T_01 (31, Region.region_a)
, ...
, T_328 (288, Region.region_h);
private final int id;
private final Rg region;
Tile ( int id, Rg region ) {
this.id = id;
this.region = region;
}
public int getId() { return id; }
public Rg getRg() { return region; }
}
// Implementation of MapView Class
...
ps。:我的回答中描述的实现只是可能的实现之一。您可以根据需要创建自己的实现。