Android Пользовательский диалог - PullRequest
4 голосов
/ 20 февраля 2012

Я пытаюсь создать пользовательский диалог в Android. То, что я хочу, это вместо того, чтобы иметь прямоугольную форму, иметь любую форму, которую я мог бы захотеть создать. Как поставить собственный фон, который представляет собой изображение PNG в форме круга.

Если я сделаю это, область за пределами круга заполняется белым, чтобы заполнить прямоугольник диалога. Что мне нужно, так это чтобы только круг и остальная часть макета были скрыты. Надеюсь, что это имеет смысл.

Из того, что я знаю, это невозможно, но все же, может быть, у кого-то есть хорошие идеи? Благодарю.

Ответы [ 2 ]

4 голосов
/ 21 февраля 2012

Ну, я действительно нашел то, что хочу:

final Dialog d = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
        d.setContentView(R.layout.custom);
        d.setCanceledOnTouchOutside(true);
        d.setCancelable(true);
        return d;

Конструктор диалогов позволил мне сделать его прозрачным, и тогда я мог сделать все, что захочу, в своем макете с фоновым изображением PNG любой формы, которую я хочу. Никакие формы и границы не нужны. Это легко охватывает любую форму, а не только круги / прямоугольники и т. Д., Если вы управляете макетом в соответствии с дизайном диалога.

4 голосов
/ 20 февраля 2012

Способ обойти это - создать собственный диалог с прозрачным фоновым цветом (ARGB # 00000000 или Color.Transparent).После этого добавьте линейный макет в свой пользовательский диалог с помощью XML, который можно нарисовать для фона.В этом XML укажите радиус границы, чтобы макет был кругом.Затем добавьте еще один макет к этому линейному макету с шириной и высотой, установленными в FILL_PARENT, и фоном, установленным в круговое изображение.Наконец, добавьте остальные ваши диалоговые компоненты к этому второму макету.

Я помню достижение этого эффекта в прошлом, но у меня нет кода, чтобы увидеть точный синтаксис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...