更改按钮在Android中的位置

时间:2013-06-19 06:11:33

标签: java android button position

我的第一个问题是点击布局。我解决了。

现在我的问题是如何在所需位置设置按钮的位置?

我的应用程序的最低api级别为8(我无法设置 getX() getLeft()

测试XML代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" >
<Button android:id="@+id/buttonx" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="X" />
</LinearLayout>

Acitivty代码:

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;

public class Test extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.test);

        Button xclose = (Button) findViewById(R.id.buttonx);
        xclose.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                finish();
            }
        });
    }
}

以动态或编程方式更改按钮位置的任何方法吗?

6 个答案:

答案 0 :(得分:1)

如果您需要在线性布局中对齐视图请阅读有关gravity和layout_gravity属性的信息。

你有另一种布局,比如相对布局。它将为视图alignment.ex提供更多属性:layout_alignLeft,layout_alignParentLeft等......

研究它并随意使用它......谢谢......

答案 1 :(得分:0)

您可以在代码中使用填充或边距,例如

 xclose.setPadding(left, top, right, bottom);

在onclick时,你试试这个

答案 2 :(得分:0)

您始终可以使用Jake Wharton的NineOldAndroids来使用setX()和setY()(以及许多其他属性)。 该库将Honeycomb-Animation框架移植回api级别1!

如果这不起作用,您可以创建自己的ViewGroup并自己测量/布局孩子。更多信息here

编辑:此外,自api级别1以来,View.getLeft()/ getTop()/ ...可用。请参阅here

希望这有帮助!

答案 3 :(得分:0)

我不知道你想在哪里找到你的按钮,但你应该看看FrameLayout(它可以让你把按钮放在你的布局中的任何地方)。

答案 4 :(得分:0)

使用Android,您通常有三种布局选项,详见Layouts | Android Developers注释。 Linear Layout为您提供了声明元素并将其水平或垂直链接的选项。我相信你需要的Relative Layout允许你自由地定义一个元素相对于另一个元素的位置,而Web View通常用于显示与web相关的内容。

正如我所说,我相信Relative Layout正是您所寻找的。看看this example,它整齐地概述了如何使用不同的对齐选项来放置元素。你不会有两个主要类别。第一个允许您将元素与父元素对齐,如果要移动元素left,right,top,bottom或center,则可以使用它。第二个允许您通过指定元素(例如android:layout_toLeftOfandroid:layout_below)来定义相同级别元素的对齐方式。您可以将所有这些结合起来以获得所需的结果。

我很清楚有很多选项可以实现这个结果,但我发现这很简单,通常足以实现视觉上有吸引力的布局。

答案 5 :(得分:0)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/blur2"
    android:orientation="horizontal"
    tools:context=".MainActivity" >
<Button android:id="@+id/buttonx" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="X" />

</RelativeLayout>

确保它是相对的,而不是Linearlayout,因为相对它可以让你轻松移动按钮。