1

Androidでシンプルなトーストを使用していますが、すべての電話で画面の下部から30dpiの位置に一貫して配置して、下部にあるメニューバーを覆わないようにしたいと考えています。

次のようにして、1台の電話で動作させることができます。

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

しかし、異なるサイズの画面では機能しません。これを機能させるために使用できる別の重力はありますか?

4

1 に答える 1

4

ええ、あなたは近いですが、重力をBOTTOM|CENTER_HORIZONTALに設定してから、30 dp オフセットする必要があります。

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 に答える