如何通过轮廓多边形设置按钮?安卓
Posted
技术标签:
【中文标题】如何通过轮廓多边形设置按钮?安卓【英文标题】:How to set button by a contour polygon? Android 【发布时间】:2013-01-16 15:34:25 【问题描述】:有两个相邻的图形按钮。如果我使用坐标触摸TouchEvent
的计算方法,我必须创建一个大的坐标数组。也许还有其他方法?
【问题讨论】:
这就是按钮的样子? 不,设计还没有完成,现在站在十字路口,我想做一个梯形按钮,如果我找到解决我的问题的方法 【参考方案1】:可能不是最好的解决方案,但您可以重叠两个按钮,每个按钮代表图像的一部分(黑色或白色),并使 Button
图像的其余部分透明(图像将具有相同的尺寸)纽扣)。您还需要扩展Button
类以覆盖onTouchEvent
方法如何处理触摸事件,具体取决于触摸发生的点是透明点还是“图像”点。我制作了一个小示例项目,获得了一个Button
,其中包含如下两部分(忽略我的设计技能):
你可以找到project here,这很容易解释。看看对你有没有帮助。
【讨论】:
感谢您的解决方案。它帮助了我。但是,我发现您的样品有问题。如果可绘制对象不在“wrap_content”中(例如,fill_parent),您的项目将崩溃。我已经通过创建这样的位图来修复它: Bitmap b = Bitmap.createScaledBitmap( ((BitmapDrawable) bkg.getCurrent()).getBitmap(), getWidth(), getHeight(), true ); @Sebastien 你是对的,我的代码没有考虑到视图的大小变化(或者比位图本身更大)。我已经更正了示例,并在onSizeChanged
回调中缩放了 Bitmap
,因此它始终具有正确的大小。
您的解决方案比我的更好(在 onSizeChanged 中执行)。再次感谢 :) 但是,我再次对其进行了改进,在创建位图之前,我添加了以下代码: // 位图在内存中占很多位置,尽快释放内存 if (mBitmap != null) mBitmap.回收(); 以上是关于如何通过轮廓多边形设置按钮?安卓的主要内容,如果未能解决你的问题,请参考以下文章