1

我在 Android 中使用了一个简单的 toast,我希望它在所有手机的屏幕底部始终保持 30dpi,这样它就不会覆盖我在底部的菜单栏。

我可以通过以下方式让它在一部手机上工作:

Toast toast= Toast.makeText(getApplicationContext(), "Your string here", Toast.LENGTH_SHORT);  
toast.setGravity(Gravity.Center, 0, 300);
toast.show();

但是在不同尺寸的屏幕上它不起作用。我可以使用不同的重力来完成这项工作吗?

4

1 回答 1

4

是的,你已经接近了,但你应该将 Gravity 设置为BOTTOM|CENTER_HORIZONTAL,然后将其偏移 30dp:

Context c = getApplicationContext();
int offset = Math.round(30 * c.getResources().getDisplayMetrics().density);
Toast toast = Toast.makeText(c, "My Text", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, offset);
toast.show();
于 2013-06-26T16:59:23.180 回答