在我的应用程序中,我使用带有对话框主题的活动来显示消息。我喜欢将活动与屏幕中心对齐。但是活动不是水平集中的。如何实现这一点。
代码尝试如下
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.callinfo);
WindowManager.LayoutParams wmlp = getWindow().getAttributes();
wmlp.width = LayoutParams.MATCH_PARENT;
wmlp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL;
String incomingNumber = getIntent().getStringExtra("incomingNumber");
TextView tvNumber = (TextView)findViewById(R.id.Number);
tvNumber.setText(incomingNumber);
new Handler().postDelayed(new Runnable(){
public void run() {
finish();
}
}, 60 *1000);
}
当前情况的屏幕截图
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/layout_bg"
android:layout_margin="10dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/optrlogo"
android:padding="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:orientation="vertical">
<!-- line 1 -->
<TextView
android:id="@+id/Number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textColor="@android:color/black"
android:text="-" />
<!-- line 2 -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/CType"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12sp"
android:layout_weight="1"
android:textColor="@android:color/black"
android:gravity="left"
android:text="-"/>
<TextView
android:id="@+id/Optr"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="@android:color/black"
android:layout_weight="1"
android:gravity="right"
android:text="-" />
</LinearLayout>
<!-- line 3 -->
<TextView
android:id="@+id/Location"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="10sp"
android:textColor="@android:color/black"
android:gravity="left"
android:text="-" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:4)
很简单,Gravity设置中心只是这样:
wmlp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL;
替换为
wmlp.gravity = Gravity.CENTER;
同样改变:
wmlp.width = LayoutParams.MATCH_PARENT;
到
wmlp.width = LayoutParams.WRAP_CONTENT;
xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="@drawable/layout_bg"
android:layout_gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/optrlogo"
android:padding="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:orientation="vertical">
<!-- line 1 -->
<TextView
android:id="@+id/Number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textColor="@android:color/black"
android:text="-" />
<!-- line 2 -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/CType"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12sp"
android:layout_weight="1"
android:textColor="@android:color/black"
android:gravity="left"
android:text="-"/>
<TextView
android:id="@+id/Optr"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="@android:color/black"
android:layout_weight="1"
android:gravity="right"
android:text="-" />
</LinearLayout>
<!-- line 3 -->
<TextView
android:id="@+id/Location"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="10sp"
android:textColor="@android:color/black"
android:gravity="left"
android:text="-" />
</LinearLayout>
</LinearLayout>
</LinearLayout>