Android - Запрограммируйте ограничения ImageView в пользовательском классе тостов - PullRequest
0 голосов
/ 17 февраля 2020

Я успешно добавил ImageView в CUSTOM TOAST VIEW GROUP.

Прямо сейчас этот ImageView горизонтально центрирован в нижней части экрана.

Что мне нужно сделать sh, так это ограничить этот виджет верхней частью экрана, а затем поставить для него верхние поля. Однако я не могу найти имя метода, который позволяет этому случиться? Это вообще существует? Есть ли другое решение для этого сценария?

Как программно ограничить это изображение в верхней части представления тостов?

public class CustomToast extends android.widget.Toast{

public CustomToast(String toast_text, Context toast_context, int toast_status) {
    super(toast_context);

    // TOAST
    Toast toast = Toast.makeText(toast_context, toast_text, Toast.LENGTH_LONG);

    // VIEW
    ViewGroup view = (ViewGroup) toast.getView();

    // BACKGROUND
    view.setBackgroundResource(R.drawable.background_toast);

    // IMAGE VIEW
    ImageView myImage = new ImageView(toast_context);
    myImage.setImageResource(R.drawable.icon_toast_valid);
    myImage.setMaxWidth(200);
    myImage.setMaxHeight(200);
    myImage.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
    myImage.setAdjustViewBounds(true);

    view.addView(myImage);

    // SHOW
    toast.show();
}

}

Я проверил документацию android , некоторые ссылки stackoverflow и даже пытался найти метод с помощью Android Studio интеллектуального завершения кода . До сих пор я не был в состоянии решить эту проблему ...

1 Ответ

1 голос
/ 17 февраля 2020

В Android у вас есть View и ViewGroups. ViewGroups могут содержать дочерние элементы, и эти дочерние группы могут быть другими View или ViewGroups.

View ведет себя по-своему (цвет, размер, ориентация ...). В ViewGroups приказ ведут себя с собой и своими детьми.

Наиболее часто используемые группы просмотра:

  • FrameLayout
  • LinearLayout
  • RelativeLayout
  • ConstraintLayout

В зависимости от того, что вам нужно, вы должны выбрать.

  • FrameLayout упорядочить своего ребенка как стек просмотров так же, как вы заявляете в xml.
  • LinearLayout упорядочивает другие представления либо по горизонтали в одном столбце, либо по вертикали в одной строке.
  • RelativeLayout имеет ссылки между дочерними элементами на порядок.
  • ConstraintLayout имеет "ограничения" для упорядочения своих дочерних элементов, это похоже на RelativeLayout, но самый мощный.

В вашей реализации у вас есть "программная" реализация, возможно, если вы попытаетесь использовать xml, то будет проще.

...