2013-01-16 58 views
5

有两个相邻的图形按钮。如果我使用坐标的计算方法touch TouchEvent,我必须创建一个大的坐标数组。也许还有另一种方法?如何用轮廓多边形设置按钮? Android

ImageButton

+0

这正是按钮的外观? – Luksprog

+0

不,设计未完成,现在站在十字路口,我想做一个梯形按钮,如果我找到解决方案我的问题 – Roman

回答

7

可能不是最好的解决方案,但你可以重叠两个按钮的每个表示所述图像的一部分(黑色或白色),使Button的图像透明的其余部分(图像将具有两个按钮的尺寸相同)。您还需要扩展Button类以覆盖onTouchEvent方法处理触摸事件的方式,具体取决于发生触摸的点是透明点还是“图像”点。我做了一个小样本项目中获得两件象下面这样Button(忽略我的设计技能):

enter image description here

您可以找到project here,这是相当自我解释。看看它是否可以帮助你。

+1

感谢您的解决方案。它帮助了我。但是,我发现您的示例有问题。 如果drawable不在“wrap_content”(例如,fill_parent)中,那么您的项目将会崩溃。 。 位图B = Bitmap.createScaledBitmap( \t \t((BitmapDrawable)bkg.getCurrent())getBitmap(), \t \t的getWidth(), \t \t的getHeight(:我已经通过创建这样的位图固定它), \t \t true \t); –

+1

@Sebastien你说得对,我的代码没有考虑视图的大小变化(或者比位图本身更大)。我已经更正了示例,并且我正在缩放'onSizeChanged'回调中的'Bitmap',以便它始终具有正确的大小。 – Luksprog

+0

你的解决方案更好,我的(在onSizeChanged做到这一点)。再次感谢:) 但是,我已经改进了一遍,在创建位图之前,我已经添加了这样的代码: //位图在内存中占用大量内存,尽快释放内存 \t if(mBitmap!= null ){ \t mBitmap.recycle(); \t} –