установите прозрачный фон для alertdialog в android
Я хочу показать диалог оповещения с прозрачным фоном. Мой код диалогового окна оповещения:
Мое фоновое изображение содержит закругленные углы. Но, к сожалению, поп появляется с прямоугольным белым фоном. Любое тело плз предложите мне с idea.Thanks заранее.
7 ответов
Я хочу иметь прозрачный фон для виджета Android EditText. Как это возможно?
Как я могу установить фон для button в прозрачный цвет, например прозрачный синий, вместо сплошного синего? Когда я использую button.setBackgroundColor(Color.BLUE) , он устанавливает его в сплошной синий цвет.
определите, что следует в файле styles.xml
и передайте его в качестве аргумента конструктору AlertDialog
Или программно, через экземпляр Dialog вы можете вызвать
Еще одно решение:
При использовании Alertdialog.builder — Он не дает в нем опции getwindow() . Так что мы можем заставить его работать вот так:
И ваш фон AlertDialog будет прозрачным.
вы могли бы попробовать сделать что-то вроде этого:
Если вы просто хотите удалить белый фон из макета диалогового окна, то вы просто добавляете:
Если вы также хотите удалить фон окна полупрозрачный цвет для диалога, то вам нужно добавить обе строки:
Приведенный ниже код изменяет макет фона.
Раньше я боролся с превращением фона деятельности в прозрачный. Я бы правильно установил фон макета на #00000000 , и я бы правильно установил getWindow().setBackgroundDrawable(new ColorDrawable(0)) в методе onCreate. Однако с этими двумя изменениями я всегда получал серовато-черный контейнер с.
Можно ли установить прозрачный фон для виджета android tab,я использовал приведенный ниже код для установки фонового изображения вкладки Drawable drawable = new BitmapDrawable(bgImage); mTabHost.getTabWidget().setBackgroundDrawable(drawable); но проблема в том,что я вижу черную линию, а не.
Похожие вопросы:
Я хочу создать уведомление Android с прозрачным фоном. Я использую bigContent с remoteViews для создания своего собственного макета, но когда я устанавливаю цвет фона основного макета на.
Я не могу изменить белый фон кнопок. Мне нужен прозрачный фон, который совпадает с верхним прозрачным фоном. Я попробовал несколько методов, но ничего не вышло. Есть ли какой — нибудь способ сделать.
Может ли приложение Flex Air Android иметь прозрачный фон, как у Android Theme.Transluscent? Я пробовал добавлять: none .
Я хочу иметь прозрачный фон для виджета Android EditText. Как это возможно?
Как я могу установить фон для button в прозрачный цвет, например прозрачный синий, вместо сплошного синего? Когда я использую button.setBackgroundColor(Color.BLUE) , он устанавливает его в сплошной.
Раньше я боролся с превращением фона деятельности в прозрачный. Я бы правильно установил фон макета на #00000000 , и я бы правильно установил getWindow().setBackgroundDrawable(new ColorDrawable(0)).
Можно ли установить прозрачный фон для виджета android tab,я использовал приведенный ниже код для установки фонового изображения вкладки Drawable drawable = new BitmapDrawable(bgImage);.
У меня есть пользовательский стиль AlertDialog , который делает коробку AlertDialog прозрачной. Он работает нормально, за исключением того, что когда я раздуваю желаемый прозрачный макет в.
Мне нужно установить прозрачный фон для моего button, но только фон, а не все button. Я пытался: android:background= android:background=null и фон изменился на прозрачный, но у меня есть ошибка.
Я попытался изменить цвет текста и фона в Alertdialog на белый текст и прозрачный фон. Однако это не сработало. Пожалуйста, обратитесь к приведенному ниже и дайте мне знать, что я пропустил.
Источник
Как установить фон диалогового окна прозрачным, не затрагивая его поля
В настоящее время у меня есть следующий диалог, в котором я выполню анимацию expand/ collapse для его элементов.
этот диалог создается с помощью следующего кода
однако, когда анимация выполняется, вот побочный эффект.
обратите внимание, что нежелательная дополнительная белая область в диалоговом окне после анимации не вызвана нашим пользовательским представлением. Это системное окно белый фон самого окна.
Я склонен сделать фон системного окна диалога прозрачным.
хотя нежелательный белый фон больше не отображается, исходное поле диалога также исчезло. (Ширина диалога теперь полная ширина экрана)
как я могу сделать его прозрачным, не затрагивая его маржу?
6 ответов
есть довольно простой способ сделать это:
вам нужно «изменить» Drawable что используется в качестве фона Dialog . Такие Dialogs использовать InsetDrawable в качестве фона.
API >= 23
к сожалению, только SDK для API>=23 позволяет получить источник Drawable обернутый InsetDrawable ( getDrawable() метод). С этим вы можете делать все, что хотите-например, изменить цвет на что-то совершенно другое (например, RED или что-то). Если вы используете этот подход, помните, что обернутом Drawable это GradientDrawable , а не ColorDrawable !
для более низких API ваши («элегантные») опции очень ограничены.
к счастью, вам не нужно менять цвет на какое-то сумасшедшее значение, вам просто нужно изменить его на TRANSPARENT . Для этого вы можете использовать setAlpha(. ) метод on InsetDrawable .
редактировать (в результате из Чок Янь Чэн комментарии):
или вы можете пропустить кастинг InsetDrawable и получить тот же результат. Просто помните, что это вызовет alpha быть измененным на , а не Drawable это обернуто InsetDrawable .
попробуйте ниже тему:
попробуйте ниже кода, чтобы применить тему к AlertDialog.Builder :
Я надеюсь помочь вам !
фоновое изображение abc_popup_background_mtrl_mult который является частью библиотеки compat содержит уже поле в информации изображения.
вот почему поле уходит, когда вы удаляете фоновое изображение. Я настоятельно рекомендую не использовать ViewTreeObserver , он будет вызываться несколько раз и может вызвать проблемы с производительностью. Лучше работать с размером экрана:
ваша проблема правильно в макете попробуйте проверить представления с иерархией зрителя.
просто добавьте эту строку после показа диалогового окна. Я бы предпочел использовать Dialog instedof с помощью AlertDialog
давайте начнем с рекомендации Google, в которой говорится использовать DialogFragment вместо простого диалога.
@rekire прав, что поля, установленные drawable, в дальнейшем он устанавливается либо 9 патч или программно в зависимости от темы.
таким образом, вы можете установить заполнение в представление содержимого или создать диалог с помощью DialogFragment вот пример, который изменяет высоту диалога на основе его содержимого, и обратите внимание, что вам не нужно использовать tree observer, который упомянутый выше может вызвать проблемы с производительностью.
так пример
Примечание: я завернул все в вид прокрутки и установить заполнение вы можете пропустить его, если хотите.
и, наконец, вы можете показать свой диалог с этим куском кода
Я не буду вдаваться в подробности, почему фрагмент диалог лучше, но одна вещь ясно, что вы можете инкапсулировать логику для него и иметь отдельный класс. Надеюсь, это решит вашу проблему.
то, что должно быть, то, что вы не показали, я не уверен, что это то, что вы не знали, или это уже есть, поэтому вы не думаете, что это необходимо показать.
установите тему в диалог, который помещает всю активность в один диалог. Я не думаю, что ты это сделал, иначе AlertDialog не будет.
Я немного потерял ваше описание, но есть немного XML, который намного мощнее, чем 9-патч, и использование RelativeLayout поможет.
Источник
AlertDialog background color
I’m using an AlertDialog with custom layout. The color of TextView in the layout is black, so when opening the dialog on Android 4.0 with Holo.Light, the text is visible. However if you open the dialog in Android 2.2 the text is not visible because of the gray background. Is there a way to change the background color?
5 Answers 5
However if you open the dialog in Android 2.2 the text is not visible because of the gray background. Is there a way to change the background color?
Yes it is possible, I used it on my app using DialogBuilder. Just put inverseBackgroundForced to true
on your dialog builder. It will force the background to white color (instead of dark grey) on android version before Froyo.
Just define the background of the root view in the layout.xml file for your dialog to a color that you want.
Thank you very much to StinePike and Artjom B.
The idea of StinePike is very good.
I put a TextView in AlertDialog having a customized background.
I show how to use solid and gradient background to customize objects.
Please let me to present you the context in which I applied StinePike’s Idea.
«Is there a way to change the background color?» Yes there are several ways for different contexts.
Please let me to «provide details and share my research» to you. My code shows how to get customized TextView Background for items of ListView incorporated in Alert Dialog.
Let’s start with the model for the item of ListView
// location: customized_tv_for_list_view.xml from layout
by using this function you can inflate a layout to your dialogue. now do whatever you want in the layout xml. for example see the following code.
Источник
Диалог с прозрачным фоном в Android
Как удалить черный фон из диалогового окна на Android. На рисунке показана проблема.
Добавить этот код
Использовать в java
Надеюсь, вам поможет!
Я столкнулся с более простой проблемой, и в решении, которое я придумал, была применена прозрачная тестовая ТЕМА. Напишите эти строки в своих стилях
В вашем основном файле манифеста, внутри блока активности диалога.
Плюс в вашем диалоговом действии XML-набор
Почему-то решение Zacharias не сработало для меня, поэтому я использовал тему ниже, чтобы решить эту проблему …
Можно установить эту тему в диалоговом окне, как показано ниже.
Вы можете использовать:
Метод. Далее следует документ:
Одна проблема, которую я нашел со всеми существующими ответами, заключается в том, что поля не сохраняются. Это связано с тем, что все они переопределяют атрибут android:windowBackground , который отвечает за поля, с сплошным цветом. Тем не менее, я сделал некоторые копания в Android SDK и нашел фоновый рисунок фона по умолчанию, и немного изменил его, чтобы разрешить прозрачные диалоги.
Сначала скопируйте /platforms/android-22/data/res/drawable/dialog_background_material.xml в свой проект. Или просто скопируйте эти строки в новый файл:
Обратите внимание, что android:color установлен на ?attr/colorBackground . Это сплошная серая / белая по умолчанию, которую вы видите. Чтобы цвет, определенный в android:background в вашем пользовательском стиле, был прозрачным и отображал прозрачность, все, что нам нужно сделать, это изменить ?attr/colorBackground на @android:color/transparent . Теперь это будет выглядеть так:
После этого перейдите к теме и добавьте следующее:
Обязательно замените newly_created_background_name фактическим именем только что созданного файла, и замените some_transparent_color на необходимый прозрачный фон.
После этого все, что нам нужно сделать, это установить тему. Используйте это при создании AlertDialog.Builder :
Затем просто создавайте, создавайте и показывайте диалог как обычно!
Такое же решение, как и zGnep, но используя xml:
Это то, что я сделал для достижения прозрачности с помощью AlertDialog.
Создал пользовательский стиль:
Затем создайте диалог с помощью:
Используйте этот код, он работает со мной:
Это мой путь, вы можете попробовать!
Попробуйте это в своем коде:
Он будет определенно работать … в моем случае …! мой друг
В моем случае решение работает следующим образом:
Источник
AlertDialog background color
I’m using an AlertDialog with custom layout. The color of TextView in the layout is black, so when opening the dialog on Android 4.0 with Holo.Light, the text is visible. However if you open the dialog in Android 2.2 the text is not visible because of the gray background. Is there a way to change the background color?
5 Answers 5
However if you open the dialog in Android 2.2 the text is not visible because of the gray background. Is there a way to change the background color?
Yes it is possible, I used it on my app using DialogBuilder. Just put inverseBackgroundForced to true
on your dialog builder. It will force the background to white color (instead of dark grey) on android version before Froyo.
Just define the background of the root view in the layout.xml file for your dialog to a color that you want.
Thank you very much to StinePike and Artjom B.
The idea of StinePike is very good.
I put a TextView in AlertDialog having a customized background.
I show how to use solid and gradient background to customize objects.
Please let me to present you the context in which I applied StinePike’s Idea.
«Is there a way to change the background color?» Yes there are several ways for different contexts.
Please let me to «provide details and share my research» to you. My code shows how to get customized TextView Background for items of ListView incorporated in Alert Dialog.
Let’s start with the model for the item of ListView
// location: customized_tv_for_list_view.xml from layout
by using this function you can inflate a layout to your dialogue. now do whatever you want in the layout xml. for example see the following code.
Источник