【问题标题】:how do I put a button on an image如何在图像上放置按钮
【发布时间】:2012-02-25 06:30:33
【问题描述】:

我需要在图像上的不同位置放置按钮,这是一个平面图,我想使用图像导航到每个房间。

我有一个想法,我需要两张图片,上面一张是平面图,底部是按钮——它们是不同颜色的区域。我想向用户展示顶部图像,但从底部图片中获取触摸。如果我能得到用户点击的按钮/区域的颜色,那么我就可以知道他们想去哪个房间,我就可以让我的按钮变成任何我喜欢的形状。

我找到了这个想法,但我找不到任何教程或说明来帮助我。我目前正在研究 GL ES 1.0,但我不确定它是否正确。

非常感谢任何帮助

谢谢

【问题讨论】:

    标签: android button android-imageview


    【解决方案1】:

    对不起,我在完整阅读问题之前回答了。我的解决方案是一种更简单的方法,但不允许您像您的想法一样形成和塑造它们。让我玩一下,也许我可以更新这个答案。祝你好运

    如果我理解正确,您可以将按钮放在图像上,然后将它们设置为不可见。这样他们看不到,但仍然可以按下。

    View b = findViewById(R.id.button); 
    b.setVisibility(View.GONE);
    //I can't remember off the top of my head but it might be
    b.setVisibility(View.INVISIBLE)
    

    如果我的代码在这里关闭,请备份Link

    【讨论】:

    • 感谢 harper89,我想如果我能获得该区域的颜色,那么我可以将我的区域制作成任何我喜欢的形状,如果我允许我的图像失真,这将有所帮助,如果两个图像都是相同的尺寸,那么任何变形都会反映在可按压区域。我对此有点新手,我只是假设图像需要隐藏并保持可见,但现在我不明白为什么图像可以不可见并且没有颜色(还要感谢@Thommy)
    • @Martin 点击颜色的点击动作似乎是一个更酷更强大的想法。希望最终你能得到你需要的东西。享受
    【解决方案2】:

    您可以为您的图片设置OnTouchListener:

    image.setOnTouchListener(new View.OnTouchListener() {
    
     @Override
     public boolean onTouch(View v, MotionEvent event) {
     event.getX();
     event.getY();
     return false;
          }
    });
    

    使用 getX 和 getY 可以获得被按下的图片的坐标。 现在您只需要一个响应“点击”的区域列表。
    我建议您使用Rect-Objects 列表来执行此操作。每个 Rect-Object 代表图片内的一个可点击矩形。一个 Rect 对象提供了contains(x, y) 方法来测试从 onTouchListener 传递的坐标是否在它里面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-28
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 2018-12-23
      • 2014-01-13
      • 1970-01-01
      • 2013-12-25
      相关资源
      最近更新 更多