- 400+ Android & Flutter Code
- Saturday, January 3, 2015
- How to change TextView background color in android
- Set TextView background color programmatically
- How to Change the Background and Text Color of Android ActionBar Option Menu
- Android Example: Change the Background & Text Color of Android Option Menu
- Java Activity File
- Option Menu Items
- Styles.xml File
- Colors.xml File
- Текст с разметкой в android.widget.TextView
- Задачи
- Создание приложения
- Подготовка ресурсов
- Как всё работает
- Вызов Activity
- Использованные материалы
- Архив с исходниками проекта
- Как изменить цвет фона в android app
- 18 ответов
- самый простой способ
- вопрос говорит Самый простой способ, так что вот он.
400+ Android & Flutter Code
Example code for android + flutter app developers.
Saturday, January 3, 2015
How to change TextView background color in android
TextView display text on android application. android developer can change TextView background color both programmatically at run time in java file and statically by declarative syntax in xml layout file or xml xml resource file.
the following example code demonstrate us how can we set or change the TextView background color by declarative syntax. in this example we did not make any changes on java file, so we does not include java file here.
in this exampe code we include few TextView widgets. we define their background color by various way. the simple way to define TextView background color is its android:background attribute. we can assign a Hexadecimal color string for this attribute to generate TextView background color.
Hexadecimal color is specified with an RGB value and optional alpha channel. in this example code we uses the following hexadecimal color format to define Textview background color, those are #RGB, #ARGB, #RRGGBB and #AARRGGBB. in this hexadecimal color format ‘A’ describe alpha channel, ‘R’ describe red channel, ‘G’ describe green channel and ‘B’ describe blue channel.
Color is a simple resource which we can reference using the value provided in the name attribute not the name of xml file. so we can combine color resources with other simple resources in a single xml file. ech color resource is a name value pair. resource file saved on res/values folder.
in this example we create a resource file to store color names. this xml resource file name is colors.xml and its located at res/values/colors.xml. we saved our preferred colors name and value in the xml file to use them on app widgets.
finally. we can define TextView background color from xml resource file by android:background attribute as android:background=»@color/AliceBlue». the specified TextView will display AliceBlue background on app.
Set TextView background color programmatically
Источник
How to Change the Background and Text Color of Android ActionBar Option Menu
Android action bar option menu is also known as overflow menu which is shown to the users when they click/press the menu key on android phone and tablet. Options menu can be customized according to our need, we can set or change the background color and text color. You can’t change the text and background color using android themes. In this tutorial, you will learn how to change the background color of android action bar option menu programmatically.
Changing the background color of your android app option menu is not the very difficult. Someone write it as difficult and tricky but here I am going to show you to change background and text color of your app option menu with simplest ways. Following is the step by step guide to change the background color of android option menu/ overflow menu.
Android Example: Change the Background & Text Color of Android Option Menu
Following is the content different files of android project to change the background and text color of android overflow menu.
Java Activity File
Following is the complete code of java activity file. Here you will see two override methods to add menu items in android application, onCreateOptionsMenu and onOptionsItemSelected .
src/ OverflowMenuBackgroundColor.java
Option Menu Items
Here I have added three items for option menu.
Styles.xml File
To add background and text color of overflow menu just add two line of more code android:textColor and itemBackground in your project styles.xml file. Following is the complete content of styles.xml file.
res/values/styles.xml
Colors.xml File
In this file I have defined different color value for option menu background, app text color, accent color, toolbar/app bar color, etc.
Источник
Текст с разметкой в android.widget.TextView
Недавно мне понадобилось сделать довольно хитроумный чат в приложении под Android. Помимо собственно информации требовалось передавать пользователям дополнительную функциональность в контексте определенного сообщения: имя автора сообщения по нажатию на него должно вставляться в текстовое поле ответа, а если это сообщение о только что созданном игровом сеансе, пользователи должны иметь возможность присоединиться к игре по клику и так далее. Одним из главных требований была возможность создавать сообщение, содержащее несколько ссылок, что и задало направление исследований.
WebView, обладая нужной функциональностью, был отвергнут по причине тяжести решения: я даже не стал создавать 100 или сколько-нибудь там экземпляров в тестовых целях, по одному на каждое сообщение, поскольку сразу было понятно, что это расточительство нормально работать не будет.
К счастью, самый обычный TextView обладает неожиданно потрясающей функциональностью по разметке текста и может использоваться как в качестве отдельного элемента, так и служить целой страницей, будучи несравненно легковеснее, чем WebView.
Я реализовал весь, необходимый мне функционал и выяснил ещё несколько довольно интересных вещей, столкнувшись с некоторым количеством подводных камней (впрочем, не очень острых). Можно сказать, всё нижеописанное — руководство по созданию достаточно мощной справочной системы в своём приложении практически даром.
Задачи
В данном примере мы создадим приложение с двумя Activity, одна из которых содержит TextView, исполняющий роль браузера, из которого, в частности, можно вызвать вторую Activity, демонстрирующую работу с параметрами вызова. Мы выясним, каким образом можно создавать страницы текста с разметкой и изображениями и связывать их ссылками.
Содержимое страниц берётся из строк в ресурсах приложения, а изображения являются drawable-ресурсами. Небольшие изменения в коде позволят использовать другие расположения.
Создание приложения
Любым удобным нам способом создаём обычное приложение:
Немного пояснений к манифесту. Если с первой Activity всё понятно, вторая (AnotherActivity) содержит некие дополнительные описатели.
android:exported=«false» необходимо для того, чтобы компилятор не выдавал предупреждения о том, что мы забыли что-то прописать в экспортируемом компоненте. На мой взгляд, чисто декоративный момент, но чем меньше жёлтых треугольничков — тем спокойнее.
Раздел intent-filter содержит описатели того, каким образом и при каких обстоятельствах будет происходить запуск Activity.
означает, что можно запустить Activity ссылкой вида activity-run://AnotherActivityHost?params.
Значения action и category необходимы системе для того чтобы обнаружить и запустить Activity.
Подготовка ресурсов
Строки, содержащие разметку, должны иметь аттрибут formatted со значением false, а содержимое должно передаваться в блоке CDATA, чтобы у компилятора не было претензий к разметке и специальным символам. В данном примере признаком статьи будет префикс article_ в названии строки.
Также замечен странный глюк, проявляющийся в том, что если текст начинается с тега, то заканчивается он этим же тегом. Если у вас в начале статьи ссылка, советую ставить перед ней либо пробел, либо
.
Изображения могут быть формата jpg, png или gif без анимации. Анимированный gif отображается статичной картинкой. Расположение стандартное для ресурсов, для дисплеев разной плотности можно подготовить свой вариант картинки. В данном примере все изображения находятся в drawable-nodpi
Как всё работает
Рассмотрим некоторые части кода подробно.
TextView используемый нами в качестве браузера, требует особой инициализации:
tvContent.setLinksClickable(true); указывает на то, что ссылки в данном элементе реагируют на нажатие.
tvContent.setMovementMethod(new LinkMovementMethod()); назначает способ навигации по элементу. Использованный нами LinkMovementMethod интересен сам по себе и, возможно, заслуживает отдельной статьи. Я лишь скажу, что при необходимости более полного контроля можно создать его наследника, переопределенные методы которого позволят отслеживать все действия со ссылками в элементе.
В данном методе происходит получение строки по идентификатору из строковых ресурсов, её преобразование из HTML в специальный объект Spanned, затем ещё одно преобразование в Spannable и установка в TextView в качестве содержимого. Всё это кажется довольно громоздким, но тому есть причины.
В TextView, на мой взгляд, странный порядок обработки спанов — с конца списка. При естественном расположении спанов после преобразования строки из HTML, изменения внешнего вида вложенных спанов перекрываются свойствами спанов, их содержащих. Для нормального отображения приходится буквально выворачивать маркировку наизнанку с помощью метода revertSpanned:
Определение обработчика ссылок на изображения минималистично и призвано загружать только картинки из ресурсов. Поскольку мы рассматриваем вариант справочной системы, я посчитал, что этого будет достаточно. С вашего позволения, я не буду цитировать его. Если вы хотите большего, можно обратиться, например, к данной статье.
Более интересен нам будет Html.TagHadler:
Здесь у нас происходит несколько интересных вещей.
При преобразовании из HTML в Spanned методом Html.fromHtml, обрабатываются тэги br , p , div , em , b , strong , cite , dfn , i , big , small , font , blockquote , tt , a , u , sup , sub , h1. h6 и img . В случае, если тэг не опознан, вызывается Html.TagHandler (если, конечно, он передан в вызов).
Мы проверяем, не является ли переданный тэг «нашим» и если это так, создаём соответствующий Span — элемент разметки, а затем накладываем его на текст. Я создал несколько собственных Span-ов, они будут рассмотрены далее. Как правило, Span-ы наследуются от android.text.style.CharacterStyle.
К сожалению, у меня не получилось малой кровью добиться центрования отдельных строк или абзацев, а встроенной возможности для этого не существует. Также, нельзя прочесть атрибуты тэга из xmlReader, поскольку он реализован не полностью. По этой причине пришлось изобретать свой способ передачи параметров: значение является частью тега. В нашем примере таким образом передаётся значение цвета в тэге color, преобразовываемом в ParameterizedSpan. Получается что-то вроде красный . Это достаточно ограниченный и не очень удобный способ, но иногда лучше такой, чем никакого.
Этот код делает следующее: В случае, если передан открывающий Span, он добавляется к концу строки в текущем её виде. В случае, если Span закрывающий, мы находим в строке его открывающий аналог, запоминаем его положение, затем удаляем и добавляем новый, но уже с информацией о начальном положении и длине.
Мы завершили рассмотрение класса Activity, являющегося основным модулем нашего приложения. Теперь рассмотрим вспомогательные классы.
Это Span общего назначения и с его помощью можно задать большинство параметров стиля текста. Его можно использовать как базу для создания стилей текста из собственных тэгов.
Этот класс описывает элемент, который по нажатию на него обеспечивает переход к статье, чей идентификатор является его параметром. Здесь я применил производное от способа, описанного мной ранее: сам тэг является собственным параметром, а его класс определяется префиксом article_. Поднимемся выше, к описанию Html.TagHandler:
Обработчик тэгов, увидев тэг, начинающийся на article_, создаёт ArticleSpan, задавая ему в качестве параметра название тэга. Элемент, при нажатии на него, вызывает метод MainActivity.setArticle, после чего в TextView устанавливается новый текст.
Здесь реализован элемент, получающий параметр явно и отдельно от своего имени. Претензия на своего рода стандарт именования тэгов, раз уж нельзя передавать атрибуты.
Конечно, всё описанное является вариациями одного принципа, каждый выберёт то, что ему удобнее.
Вызов Activity
В HTML мы видим следующее:
При нажатии на ссылку, происходит вызов AnotherActivity с передачей параметров в Intent. Эти параметры можно получить и использовать:
Использованные материалы
Следующие материалы очень ускорили создание данной статьи, да и, чего уж там, сделали его вообще возможным:
Я очень рад, что существует на свете StackOverflow.com.
Архив с исходниками проекта
Архив с исходными текстами и ресурсами проекта можно взять здесь.
Источник
Как изменить цвет фона в android app
Я хочу иметь возможность изменить цвет фона на белый в моем приложении для android самым простым способом.
18 ответов
вам нужно использовать свойство android: background, например
Также вам нужно добавить значение для белого в строках.в XML
Edit: 18 ноября 2012
первые две буквы цветового кода из 8 букв предоставляют Альфа-значение, если вы используете цветовую нотацию html 6 букв, цвет непрозрачен.
вы также можете использовать
в макете XML или /res/layout/activity_main.xml , или вы можете изменить тему в ваш AndroidManifest.XML путем добавления
если вы хотите изменить фон динамически, используйте
самый простой способ
не нужно ничего определять. Он использует предопределенные цвета в android.R .
чтобы изменить цвет фона самым простым способом программно (исключительно — без изменений XML):
единственным требованием является то, что ваш» базовый » элемент в activity_whatever.xml имеет идентификатор, на который можно ссылаться в Java ( container в данном случае):
Paschalis и Джеймс, который ответил Здесь, своего рода привести меня к этому решению, после проверки различных возможностей в Как установить цвет текста TextView в код?.
надеюсь, это поможет кому-то!
самый простой способ это добавить android:background=»#FFFFFF» к основному узлу в макете.xml или /res/layout/activity_main.xml :
этот метод сработал для меня:
установить id в макете xml
добавить значения цвета/цвета.в XML
лучший способ использования фона с градиентом, поскольку он не увеличивает размер приложения ваших изображений приложений, является ядом для android-приложения, поэтому постарайтесь использовать его меньше, а не использовать один цвет в качестве фона вы можете использовать несколько цветов в одном фоне.
Вы можете попробовать это в xml спецификация:
вы можете попробовать с этим способом
другой способ, пойти к планировка -> свой .xml-файл ->конструктора .Затем идите компонент дерева и выберите макет, который вы хотите изменить цвет . В дереве компонентов ниже есть свойства.Выберите фон в разделе свойств (в разделе изображения 1). Затем нажмите раздел 2 на картинке . Тогда ресурсы окно будет открыто .Из этого выберите цвета.Затем выберите цвет, который вы хотите . Введите описание изображения здесь
в макете, чтобы изменить фон, используйте это.
в программе можно использовать это. Например: цвет фона Texview
вы можете использовать простые ресурсы цвета, указанные обычно внутри
и используйте это через android:background=»@color/red» . Этот цвет можно использовать в любом другом месте, например, в качестве цвета текста. Ссылка на него в XML таким же образом, или получить его в коде через
вы также можете использовать любой drawable ресурс в качестве фона, используйте android:background=»@drawable/mydrawable» для этого (это означает 9patch drawables, обычные растровые изображения, фигуры drawables. ).
несколько раз текст имеет тот же цвет, что и фон, попробуйте с android:background=»#CCCCCC» в свойствах listview, и вы увидите это.
android: background= «#64B5F6»
Вы можете изменить значение после » # » в соответствии с вашей собственной спецификацией или необходимостью в зависимости от того, как вы хотите их использовать.
вот пример кода:
- перейдите в Activity_Main.в XML
- есть представление дизайна / и текстовое представление .
- выберите вид текста
написать этот код:
Если вы хотите добавить цвет фона ко всей деятельности
Если вы хотите использовать фон для просмотра
надеюсь, что это помогает!
этот код может быть полезен для вас:
Я хочу иметь возможность изменить цвет фона на белый в моем android-приложение самым простым способом.
вопрос говорит Самый простой способ, так что вот он.
Set parentViewStyle во всех ваших родительских видов. Как и большинство родительских представлений вашей деятельности, фрагментов и диалогов.
просто поместите этот стиль внутрь res>values>styles.xml
таким образом, вам не нужно менять цвет фона много в будущем.
Источник