【问题标题】:Android align Image Buttons on a curve?Android在曲线上对齐图像按钮?
【发布时间】:2011-04-21 16:12:16
【问题描述】:

我在主菜单上有一系列按钮。而不是标准的并排,或者一个在另一个之上,我希望它们围绕一个半圆对齐。由于我无法将按钮拖放到设计器中我想要的位置,我想知道最好的方法是什么?我可以在 XML 中执行,还是最好以编程方式执行?

【问题讨论】:

  • 按钮是否需要环绕显示中的某些现有对象,或者它们将拥有全部空间?
  • 背景中有一张图片,我希望他们能在身边。除此之外,它们将是那里唯一的东西。

标签: android user-interface button


【解决方案1】:

这是一个围绕一个圆圈绘制一系列 TextView 的示例。您应该能够对其进行调整以满足您的需求。

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    AbsoluteLayout al = new AbsoluteLayout(this);
    setContentView(al);

    double radius = 75;
    double cx = 100, cy = 100;
    for(double angle = 0; angle < 360; angle += 30) {
        double radAngle = Math.toRadians(angle);
        double x = (Math.cos(radAngle)) * radius + cx;
        double y = (1 - Math.sin(radAngle)) * radius + cy;
        TextView textView = new TextView(this);
        textView.setText(Double.toString(angle));
        AbsoluteLayout.LayoutParams lp = new AbsoluteLayout.LayoutParams(60, 30, (int) x, (int) y);
        textView.setLayoutParams(lp);
        al.addView(textView);
    }
}

【讨论】:

  • 我得到的是在 XML 或 GUI 设计器中确实没有办法做到这一点,对吧?它也一样; GUI设计器非常糟糕。但是,您的代码确实做了我想做的事情。谢谢!
  • 其实 AbsoluteLayout 已经被弃用了,应该用什么代替呢?
  • AbsoluteLayout 已被弃用,因为现在有很多不同的屏幕尺寸。您仍然可以使用它,但您有责任覆盖“onSizeChanged()”并根据新大小重新定位子视图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
相关资源
最近更新 更多