我需要显示欧洲地图的漂亮图像,并且当用户点击每个国家/地区时,我希望我的应用程序能够显示不同的活动 - 地图上的每个国家/地区都需要具有不同的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)
希望这对你有所帮助:).
归档时间: |
|
查看次数: |
27191 次 |
最近记录: |