【问题标题】:Creating two custom buttons创建两个自定义按钮
【发布时间】:2013-03-05 03:02:54
【问题描述】:

有人可以帮我创建如下的自定义按钮吗?可能吗?搜索了很多,只能找到一些东西,结果又是rectangular/square shapes。但我希望两个按钮是triangular,并排列在另一个上,并且只能在它们特定的占用区域上单击。代码 sn-ps 表示赞赏。

【问题讨论】:

  • 通过创建一个看起来像上图的图像以合乎逻辑的方式成为可能。因为你不能重新塑造命令按钮。
  • @Raynold 但是如果我们创建一个图像,点击事件如何在它们各自的形状上分开?
  • 你是如何解决这个问题的?我有这个问题 [这里][1] [1]:stackoverflow.com/questions/19797430/…

标签: android button custom-component


【解决方案1】:

您可以通过扩展 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 中,就完成了。

【讨论】:

  • 您能否详细说明如何创建三角形按钮并像上图那样相互排列?
  • 将您的 2 个自定义按钮放在同一个 FrameLayout 中,并将它们的 android:background 设置为您的按钮图像。三角形按钮没有默认资源,您必须自己制作图像。您可以使用State List 为按下状态和正常状态使用不同的图像。
  • 感谢您的宝贵时间。我的问题是如何准备这些自定义按钮。
  • 我不明白您所说的“准备”是什么意思? Add your custom views in your XML 你很高兴。
猜你喜欢
  • 1970-01-01
  • 2016-12-27
  • 2011-04-04
  • 2012-11-26
  • 2021-12-26
  • 2016-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多