我怎樣才能設置在Android操作系統的屏幕上的窗口的位置?我想在屏幕的左上角設置窗口。我怎樣才能做到這一點?如何將窗口放置在Android上的自定義位置?
基本問題是,我正在使用對話框主題進行我的活動。然後活動出現在屏幕的中心。我希望它出現在屏幕的左上角。我怎麼能做到這一點?
我怎樣才能設置在Android操作系統的屏幕上的窗口的位置?我想在屏幕的左上角設置窗口。我怎樣才能做到這一點?如何將窗口放置在Android上的自定義位置?
基本問題是,我正在使用對話框主題進行我的活動。然後活動出現在屏幕的中心。我希望它出現在屏幕的左上角。我怎麼能做到這一點?
如果你正在使用你的活動爲主題的對話,那麼你可以使用下面的代碼
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
View view = getWindow().getDecorView();
WindowManager.LayoutParams lp = (WindowManager.LayoutParams) view.getLayoutParams();
lp.gravity = Gravity.LEFT | Gravity.TOP;
lp.x = 10;
lp.y = 10;
lp.width = 300;
lp.height = 300;
getWindowManager().updateViewLayout(view, lp);
}
,如果你使用的是警告對話框,並要調整設置,然後你可以按照下面的代碼片段
private CharSequence[] items = {"Set as Ringtone", "Set as Alarm"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if(item == 0) {
} else if(item == 1) {
} else if(item == 2) {
}
}
});
AlertDialog dialog = builder.create();
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
WindowManager.LayoutParams wmlp = dialog.getWindow().getAttributes();
wmlp.gravity = Gravity.TOP | Gravity.LEFT;
wmlp.x = 100; //x position
wmlp.y = 100; //y position
dialog.show();
嗨,我發佈了一個更好的方法。請看一下。我誠實地接受,只有在看完你的代碼之後,我纔會用更好的方法登陸。我看到你的代碼後纔得到的重力。非常感謝你。 – Murray9654 2013-03-27 10:58:09
感謝您的答覆。這對我幫助很大。只有在看到你的回覆後,我纔得到關於Gravity的提示。直到那時我才忽略了重力。
所以我建議一個更好的方法。視圖放置的最頂層的容器是「窗口」。 DecorView也是一個放在Window上的視圖。所以有一個簡單的方法來實現我的要求。它如下
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Window win=getWindow();
WindowManager.LayoutParams para=win.getAttributes();
para.gravity=Gravity.LEFT | Gravity.TOP;
para.x=10;
para.y=10;
win.setAttributes(para);
}
任何方式感謝您的答覆。這真的很有幫助。
plz顯示你的代碼你試過了什麼?你在使用PopupWindow嗎? – 2013-03-27 08:15:41