2013-06-26 64 views
1

我在Android中使用一個簡單的祝酒,我希望它從屏幕底部到所有手機的30dpi都保持一致,這樣它就不會掩蓋底部的菜單欄。如何從底部始終保持30dpi的吐司?

我可以得到它做一個手機上運行:

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

但隨後在不同的屏幕尺寸也不起作用。我可以使用不同的重力來完成這項工作嗎?

+0

曾經有運氣TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,30, \t \t \t \t myAppResources.getDisplayMetrics())? – Tom

回答

4

呀,你接近,但你應該重力設置爲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();