如何在Android OS的屏幕上设置窗口的位置?我想将窗口设置在屏幕的左上角。我怎么能这样做?
基本问题是,我正在为我的活动使用对话框主题。然后活动出现在屏幕中央。我希望它出现在屏幕的左上角。我怎么能做到这一点?
答案 0 :(得分:0)
如果您将活动用作主题对话框,则可以使用以下代码
@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();
答案 1 :(得分:0)
感谢您的回答。这对我帮助很大。看完你的回复之后,我才得到了关于Gravity的提示。直到那时我才忽略了重力。
所以我建议采用更好的方法。视图所在的最顶层容器是“Window”。 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);
}
感谢您的回复。这真的很有帮助。