Как отобразить тост в центре экрана
В Android я хочу отобразить сообщение тоста в нижней части экрана, я попробовал это:
Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG).show();
Это не работает, как я могу сделать это правильно?
6 ответов:
Для отображения тоста в центре экрана.
Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); toast.show();
Позиционирование вашего тоста
Стандартное всплывающее уведомление появляется в нижней части экрана, по центру по горизонтали. Вы можете изменить это положение с помощью
setGravity(int, int, int)
метод. Он принимает три параметра: константуGravity
, смещениеx-position
и смещениеy-position
.Например, если вы решили, что тост должен появиться в левом верхнем углу, вы можете установить гравитацию следующим образом:
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
Если вы хотите сдвинуть позицию вправо, увеличьте значение второй аргумент. Чтобы сдвинуть его вниз, увеличьте значение последнего параметра.
Файл макета для пользовательского тоста
<ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="5dp" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textColor="#000" />
.java-файл для пользовательского тоста на событии click кнопки
public class MainActivity extends Activity { private Button button; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button) findViewById(R.id.buttonToast); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // get your custom_toast.xml ayout LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.custom_toast, (ViewGroup) findViewById(R.id.custom_toast_layout_id)); // set a dummy image ImageView image = (ImageView) layout.findViewById(R.id.image); image.setImageResource(R.drawable.ic_launcher); // set a message TextView text = (TextView) layout.findViewById(R.id.text); text.setText("Button is clicked!"); // Toast... Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); } }); }
}
Toast toast = new Toast(context); toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0); toast.show();