Android:如何制作可点击的地图图像,每个国家/地区生成不同的动作?

r3m*_*3mo 19 android image

我需要显示欧洲地图的漂亮图像,并且当用户点击每个国家/地区时,我希望我的应用程序能够显示不同的活动 - 地图上的每个国家/地区都需要具有不同的onClickListener(或等效项).

基本上,当用户点击法国而非西班牙时,我需要能够调用不同的函数,例如:http://commons.wikimedia.org/wiki/File : Blank_map_of_Europe_cropped.svg

我如何在Android上最好地解决这个问题?

我有想法,但可能有一些简单的方法,我忽略了.

提前谢谢了!

干杯,r3mo

Sco*_*tty 31

这是我解决类似问题的方法.

首先复制要用作图像映射的图像并为每个部分着色.不用说,每个部分的颜色不同:D.然后在布局中创建两个ImageView.将第一个的背景设置为要显示到屏幕的图像,将第二个的背景设置为彩色的背景.

然后将第二个ImageView的可见性设置为不可见.如果此时运行程序,您应该看到要显示的图像.然后使用OnTouch侦听器并获取您触摸的像素的颜色.颜色将对应于彩色图像的颜色.

以下getColour方法需要传递touch事件的x和y坐标.R.id.img2是不可见的图像.

private int getColour( int x, int y)
{
    ImageView img = (ImageView) findViewById(R.id.img2);
    img.setDrawingCacheEnabled(true); 
    Bitmap hotspots=Bitmap.createBitmap(img.getDrawingCache()); 
    img.setDrawingCacheEnabled(false);
    return hotspots.getPixel(x, y);
}
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助:).