我的要求非常简单:我只是想在屏幕的随机位置显示一些文字。
我一直在期待,正如我用过的那样:
int x = r.nextInt(width - layout.getWidth());
和
int y = r.nextInt(height - layout.getHeight());
我的布局完全适合屏幕。
不幸的是,我的文字有时位于屏幕右侧,并以多行显示!
这是我的代码
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
layout.addView(clock);
layout.addView(txtView);
Random r = new Random();
int x = r.nextInt(width - layout.getWidth());
int y = r.nextInt(height - layout.getHeight());
layout.setPadding(x, y, 0, 0);
setContentView(layout);
答案 0 :(得分:1)
使用RelativeLayout
作为容器,而不是LinearLayout
,因为这是专为此设计的。
答案 1 :(得分:0)
我遇到的最大问题是
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
返回一个值,包括top statusBar(或通知,不知道如何调用它)和底部的软件按钮。
解决方案是在背景中创建一个虚拟布局并进行测量。