写了一个button按钮,但是他不能居中,在预览上面是居中的,使用的是Android x的新版本

android:id="@+id/mGetCode"
android:background="@drawable/regsiter_button_code"
android:text="登陆注册"
android:gravity="center"
android:textSize="@dimen/f13"
android:layout_marginTop="@dimen/d10"
android:textColor="@color/text_register_yellow"
android:layout_width="80dp"
android:layout_height="30dp" />

加上:android:layout_gravity="center"

这个需要参考你的父布局是什么,如果是线性布局,你需要在控件的属性中添加
android:layout_gravity="center" 相对于父布局完全居中
此外还有center_horizontal,center_vertical 水平/竖直居中
你代码中的android:gravity="center"只是让你的按钮的内容居中,比如文字。

可能已经居中了,但是80宽的小框因为兼容问题而位移了,看起来像内部的文字没居中一样,先排除一下

1. LinearLayout
a). android:layout_gravity="center_horizontal"表示该布局在父布局里水平居中,此且布局必须拥有android:orientation="vertical"属性;
b). android:layout_gravity="center_vertical"表示该布局在父布局里垂直居中,此时其父布局必须应设置成android:orientation="horizontal"属性(默认为该属性),且其父布局的高度应设置为android:layout_height="fill_parent"属性;

2. RelativeLayout
属性值为true或false
a). android:layout_centerHrizontal 控件在父布局中 水平居中 
b). android:layout_centerVertical 控件在父布局中 垂直居中 
c). android:layout_centerInparent 控件相对于父元素完全居中 
这里要明确一点,你是想控件里的内容水平居中,还是它在父亲控件中水平居中
a). 让textView里面的内容水平居中 : android:gravity="center_horizontal"
b). 让textView控件在它的父布局里水平居中 android:layout_gravity="center_horizontal"

影响button的居中问题的是包裹button的控件,把父控件帖出来看看