android开发中如何定义一个不规则边界的控件

时间:2022-01-17 17:00:03
android开发中如何定义一个不规则边界的控件
我想定义一个不规则的按钮或者新的组件 可以实现像flash那样的 点击如上图的某一省,那个省的图像就凸起显示的效果 。  据我所知,貌似android的控间都是必须指定 height和width的 也就是每个控件都是长方形的,如果我用framelayout去叠放那些省,然后点击它,就要捕捉控件的点击范围了

有没有人做过相关的功能 ,能否给个思路?帮帮我吧~~

10 个解决方案

#1


把这些图片做成button的背景不行么?

#2


引用 1 楼  的回复:
把这些图片做成button的背景不行么?

不行,因为
button的有效边界都是长方形的,点击时候有些边角会覆盖其他省

#3


等一天了还是没人 T.T 这个是不是很难?

#4


不知道楼主有没有换一个想法,根据点击位置的左边来更换背景的效果图,这个算法写起来比较麻烦,不过应该可用。

用户按下的触点的像素位置能够得到,然后根据该位置判断在整张图上的位置(哪个省份)。
然后根据这个省份,来换一张只有那个省份被高亮的背景图。(还可以根据位置画上去个图钉)

#5


引用 4 楼  的回复:
不知道楼主有没有换一个想法,根据点击位置的左边来更换背景的效果图,这个算法写起来比较麻烦,不过应该可用。

用户按下的触点的像素位置能够得到,然后根据该位置判断在整张图上的位置(哪个省份)。
然后根据这个省份,来换一张只有那个省份被高亮的背景图。(还可以根据位置画上去个图钉)

嗯 这个想法我也想过 ,就是不太懂如何根据每个省的形状去准确确定每个省所分布的x y范围。再不行就要逼我用上面的广告“fusioncharts”去做了

#6


有这个想法可以将后边的作为画布,点击的时候获取坐标。
然后根据坐标去取画布上坐标点的像素值,看其满足哪个个省份的像素,这样再做处理。
这种方法别忘了那些界点线的像素值

#7


引用 6 楼  的回复:
有这个想法可以将后边的作为画布,点击的时候获取坐标。
然后根据坐标去取画布上坐标点的像素值,看其满足哪个个省份的像素,这样再做处理。
这种方法别忘了那些界点线的像素值

好提议啊!根据像素去选择范围 ,好,我试试,谢谢你哈

#8


OpenGL 

#9


不要用控件,用OpenGL

#10


布鲁克 言之有理 啊 只是这么大的工作量 估计艾斯童鞋要吐血

#1


把这些图片做成button的背景不行么?

#2


引用 1 楼  的回复:
把这些图片做成button的背景不行么?

不行,因为
button的有效边界都是长方形的,点击时候有些边角会覆盖其他省

#3


等一天了还是没人 T.T 这个是不是很难?

#4


不知道楼主有没有换一个想法,根据点击位置的左边来更换背景的效果图,这个算法写起来比较麻烦,不过应该可用。

用户按下的触点的像素位置能够得到,然后根据该位置判断在整张图上的位置(哪个省份)。
然后根据这个省份,来换一张只有那个省份被高亮的背景图。(还可以根据位置画上去个图钉)

#5


引用 4 楼  的回复:
不知道楼主有没有换一个想法,根据点击位置的左边来更换背景的效果图,这个算法写起来比较麻烦,不过应该可用。

用户按下的触点的像素位置能够得到,然后根据该位置判断在整张图上的位置(哪个省份)。
然后根据这个省份,来换一张只有那个省份被高亮的背景图。(还可以根据位置画上去个图钉)

嗯 这个想法我也想过 ,就是不太懂如何根据每个省的形状去准确确定每个省所分布的x y范围。再不行就要逼我用上面的广告“fusioncharts”去做了

#6


有这个想法可以将后边的作为画布,点击的时候获取坐标。
然后根据坐标去取画布上坐标点的像素值,看其满足哪个个省份的像素,这样再做处理。
这种方法别忘了那些界点线的像素值

#7


引用 6 楼  的回复:
有这个想法可以将后边的作为画布,点击的时候获取坐标。
然后根据坐标去取画布上坐标点的像素值,看其满足哪个个省份的像素,这样再做处理。
这种方法别忘了那些界点线的像素值

好提议啊!根据像素去选择范围 ,好,我试试,谢谢你哈

#8


OpenGL 

#9


不要用控件,用OpenGL

#10


布鲁克 言之有理 啊 只是这么大的工作量 估计艾斯童鞋要吐血