【问题标题】:Making an ImageButton - without button border nor highlight制作 ImageButton - 没有按钮边框也没有突出显示
【发布时间】:2015-12-12 07:35:29
【问题描述】:

我有两个 png 图像用于按钮的按下和释放状态。我想构建一个按钮来完成以下任务:

  1. 没有背景/边框(只有这两个图像可见)
  2. 单击时不使用蓝色矩形突出显示(仅通过循环浏览这些图像)
  3. 当用户单击图像的透明部分时不会激活。

如你所见,按钮不是矩形的,所以上面提到的最后一点可能很棘手。

我已经尝试使用ImageButton 并设法满足第 1 点,但我在第 2 点失败了。
是否有另一个View 我可以使用,对我有用吗?如果没有,你能告诉我我应该研究什么技术来解决这个问题吗?

【问题讨论】:

    标签: android imagebutton


    【解决方案1】:

    只需使用ImageView

    一张图片设置为背景,第二张图片设置为 src。 它解决了你所有的问题

    【讨论】:

    • 我使用了一个选择器来改变“按钮”的按下状态。只剩下第 3 点,但它并不那么重要……谢谢您的建议!
    【解决方案2】:

    [编辑] 对于第三部分-关注此https://stackoverflow.com/a/8086317/3811198 总之

    使用 TouchListener 代替 ClickListener

    在监听器内部,如果事件是MotionEvent.ACTION_DOWN,获取触摸坐标

    在您之前获得的坐标处检查图像的像素;如果像素不透明,则认为按钮被点击,否则忽略该事件。

    【讨论】:

    • 我尝试使用 ImageButton 并添加 XML 属性 android:focusable="false"。但是当我点击按钮时,它仍然会出现蓝色突出显示。
    • 太棒了,显然这正是我所需要的。我很快就会进一步研究这个!谢谢!
    【解决方案3】:

    如果你使用 setBackground = "#0xxx";在 xml 文件中的按钮上,边框将消失。基本上使用 alpha 使其透明

    android:setBackground = "#0AAA"
    

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      • 2011-05-13
      相关资源
      最近更新 更多