2013-03-16 140 views
10

有人可以帮助我创建下面的自定义按钮吗?可能吗?搜索了很多,只能找到一些事情,这些事情再次证明是rectangular/square shapes。但我想要两个按钮为triangular,并且要安排在另一个上,并且只能在其特定的占用区域上单击。代码片断表示赞赏。创建两个自定义按钮

enter image description here

+0

通过创建一个看起来像上面的图片的图像,可以合乎逻辑的方式实现它。因为你不能重新塑造命令按钮。 – Raynold 2013-03-16 11:33:04

+1

@Raynold但是,如果我们创建一个图像,点击事件如何在各自的形状上分离? – Apparatus 2013-03-17 04:57:38

+0

你如何解决这个问题?我有这个问题[这里] [1] [1]:http://stackoverflow.com/questions/19797430/android-complex-shape-button – 2013-11-05 19:41:56

回答

2

你可以做到这一点通过扩展View并继承其onTouchEvent方法,这样

public class BottomLeftTriangleButton extends View { 

    // Copy superclass contructors 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     if (event.getX()/getWidth() < event.getY()/getHeight()) { 
      return super.onTouchEvent(event); 
     } 
     return false; 
    } 

} 

这样,你的自定义视图只拦截在底部左侧区域点击,相当于你的“按钮2“区域。您可以通过将“<”标志更改为“>”来使其他区域可点击。

然后把你的2意见在同一FrameLayout,你就完成了。

+0

能否请您详细说明了如何创建三角形按钮并像上面的图像一样安排在另一个上? – Apparatus 2013-03-17 04:59:04

+0

将你的2个自定义按钮放在同一个'FrameLayout'中,并将两个自定义按钮都设置为你的按钮图像。没有三角形按钮的默认资源,你必须自己做图像。您可以使用[状态列表](https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList)在按下状态和正常状态下使用不同的图像。 – minipif 2013-03-17 12:05:52

+0

谢谢你的时间。我的问题是如何准备这些自定义按钮。 – Apparatus 2013-03-18 07:44:56