Android button text uppercase

Xamarin.Forms on Android: How to remove the Uppercase from a button text

If you create a button on Android and write its text in lowercase (“my text”), when you launch the app, you can see that the text is all uppercase (“MY TEXT”).This is not a bug but the standard style for Android.Sometimes we prefer to have our text in lowercase so here I’ll show you different methods to do it.First of all, consider a very easy Page:

If we run the app on Android, we see that the button text will be : “MY TEXT!” all uppercase. Now let’s see how we can make it lowercase:

CUSTOM RENDERERS

First of all, create an empty class MyButton in you PCL/.NetStandard project:

Now we have to replace the Button with MyButton:

The next step is to create the custom render, so inside the Android project, create the class MyButtonRenderer:

It’s very important to add the first line [assembly: ExportRenderer(typeof(MyButton), typeof(MyButtonRenderer))] otherwise the Custom Renderer will not work.If we run the code, we see that now the button text is: “My Text!”.

EDIT THE STYLES.XML FILE

In your Android project open the styles.xml file inside the folder “Resources/values”, it will be something similar to:

To this file add these lines:

so that your styles.xml will be:

USE AN EFFECT

In your Android project create the class ButtonEffect:

In your PCL/.NetStandard project create the class ButtonEffect:

Now you need to change your ContentPage to attach the Effect to your button:

Conclusion

We have seen three methods to remove the Uppercase from your Android button:

All the methods do the same thing so it’s up to you to decide which method to use. Remember that Custom Renderers and Effects are very important in Xamarin so it’s important to understand them very well.

Источник

Tutorialwing

In this article, we will learn about android Button using Kotlin. We will go through various example that demonstrates how to use different attributes of Button. For example, set id, text, font, font-size etc. in button.

In this article, we will get answer to questions like –

  • What is Button?
  • Why should we consider Button while designing ui for any app?
  • What are possibilities using Button while designing ui? etc.

Let’s have a quick demo of things we want to cover in this tutorial –

Output

Tutorialwing Android Button Using Kotlin Output

Tutorialwing Android Button Using Kotlin Output

Video Output

Getting Started

Android Button can be defined as below –

Android Button is an user interface that are used to perform some action when clicked or tapped.

Now, how do we use Button in android application ?

Creating New Project

At first, we will create an application.
So, follow steps below to create any android project in Kotlin –

Step Description
1. Open Android Studio (Ignore if already done).
2. Go to File => New => New Project. This will open a new window. Then, under Phone and Tablet section, select Empty Activity. Then, click Next.
3. In next screen, select project name as Button. Then, fill other required details.
4. Then, clicking on Finish button creates new project.

Some very important concepts (Recommended to learn before you move ahead)

Before we move ahead, we need to setup for viewBinding to access Android Button Using Kotlin file without using findViewById() method.

Setup ViewBinding

Add viewBinding true in app/build.gradle file.

Now, set content in activity using view binding.
Open MainActivity.kt file and write below code in it.

Now, we can access view in Kotlin file without using findViewById() method.

Using Button in Kotlin

Follow steps below to use Button in newly created project –

  • Open res/layout/activity_main.xml file. Then, add below code in it –
  • We can also access it in Kotlin File, MainActivity.kt, as below –

Now, run the application. We will get output as below –

Different Attributes of Button in XML

Now, we will see how to use different attributes of Android Button using Kotlin to customise it –

Set Id of Button

Many a time, we need id of View to access it in kotlin file or create ui relative to that view in xml file. So, we can set id of Button using android:id attribute like below –

Here, we have set id of Button as buttonID using android:id=”” attribute. So, if we need to reference this Button, we need to use this id – buttonID.
Learn to Set ID of Button Dynamically

Set Width of Button

We use android:layout_width=”” attribute to set width of Button.
We can do it as below –

Width can be either “MATCH_PARENT” or “WRAP_CONTENT” or any fixed value (like 20dp, 30dp etc.).
Learn to Set Width of Button Dynamically

Set Height of Button

We use android:layout_height=”” attribute to set height of Button.
We can do it as below –

Height can be either “MATCH_PARENT” or “WRAP_CONTENT” or any fixed value.
Learn to Set Height of Button Dynamically

Set Padding of Button

We use android:padding=”” attribute to set padding of Button.
We can do it as below –

Here, we have set padding of 10dp in Button using android:padding=”” attribute.
Learn to Set Padding of Button Dynamically

Set Margin of Button

We use android:layout_margin=”” attribute to set margin of Button.
We can do it as below –

Here, we have set margin of 10dp in Button using android:layout_margin=”” attribute.
Learn to Set Margin of Button Dynamically

Set Background of Button

We use android:background=”” attribute to set background of Button.
We can do it as below –

Here, we have set background of color #ff0000 in Button using android:background=”” attribute.
Learn to Set Background of Button Dynamically

Set Visibility of Button

We use android:visibility=”” attribute to set visibility of Button.
We can do it as below –

Here, we have set visibility of Button using android:visiblity=”” attribute. Visibility can be of three types – gone, visible and invisible
Learn to Set Visibility of Button Dynamically

Set Text of Button

We use android:text=”” attribute to set text of Button.
We can do it as below –

Here, we have set text (“Hello Tutorialwing”) in Button using android:text=”” attribute.
Similarly, we can set any text using this attribute.
Learn to Set Text of Button Dynamically

Set Color of Text in Button

We use android:textColor=”” attribute to set color of text in Button.
We can do it as below –

Here, we have set color (#ffffff i.e. white) of text (“Hello Tutorialwing”) in Button using android:textColor=”” attribute. Similarly, we can set any color using this attribute.
Learn to Set Color of Button Dynamically

Set Gravity of Button

We use android:gravity=”” attribute to set gravity of text in Button.
We can do it as below –

Here, we have set gravity of text in Button using android:gravity=”” attribute. Attribute value can be – “center_horizontal”, “center”, “center_vertical” etc.
Learn to Set Gravity of Button Dynamically

Set Text in Uppercase, Lowercase

If we need to show text of Button in uppercase or lowercase etc.

Set text in uppercase

We can use android:textAllCaps=”true” attribute to set text in uppercase. We can do it as below –

Attribute android:textAllCaps=”true” sets text in uppercase. So, HELLO TUTORIALWING is set in Button.

By default, false is set in this attribute. So, Whatever value is written in android:text=”” attribute, it will be set as it is. For example,

Above code will set Hello Tutorialwing to Button.

How do we set text in lowercase?

  • In xml file – write all the text in lowercase.
  • In kotlin file – take text as string. Then, convert it in lowercase. Then, set it to Button.

Set Size of Text in Button

We use android:textSize=”” attribute to set size of text in Button.
We can do it as below –

Here, we have set size of text in Button using android:textSize=”” attribute.
Learn to Set Size of Text of Button Dynamically

Set Style (Bold/italic) of Text in Button

We use android:textStyle=”” attribute to set style (bold, italic etc.) of text in Button.
We can do it as below –

Here, we have set style of text in Button using android:textStyle=”” attribute. This attribute can take bold, italic or normal.
Learn to Set Style of Text of Button Dynamically

Set Letter Spacing of Text in Button

We use android:letterSpacing=”” attribute to set spacing between letters of text in Button.
We can do it as below –

Here, we have set spacing between letters of text in Button using android:letterSpacing=”” attribute.
Learn to Set Letter Spacing of Text of Button Dynamically

Set Typeface of Text in Button

We use android:typeface=”” attribute to set typeface in Button.
We can do it as below –

Here, we have set typeface of text in Button using android:typeface=”” attribute. This attribute can take values – “sans”, “normal”, “monospace” or “normal”.
Learn to Set Typeface of Button Dynamically

Set fontFamily of Text in Button

We use android:fontFamily=”” attribute to set fontFamily of text in Button.
We can do it as below –

Here, we have set fontFamily (Here, sans-serif) of text in Button using android:fontFamily=”sans-serif” attribute.

Till now, we have see how to use android Button using Kotlin. We have also gone through different attributes of TextView to perform certain task. Let’s have a look at list of such attributes and it’s related task.

Different Attributes of Android Button Widget

Below are the various attributes that are used to customise android Button Widget. However, you can check the complete list of attributes of Button in it’s official documentation site. Here, we are going to list some of the important attributes of this widget –

Sr. XML Attributes Description
1 android:background This attribute is used to set background to this View.
2 android:backgroundTint This attribute is used to set tint to the background.
3 android:clickable This attribute is used to set true when you want to make this View clickable. Otherwise, set false.
4 android:drawableBottom This is drawable to be drawn at bottom of the text.
5 android:drawableEnd This is drawable to be drawn to end of the text.
6 android:drawableLeft This is drawable to be drawn to left of the text.
7 android:drawablePadding This is padding of the drawable.
8 android:drawableRight This is drawable to be drawn to right of the text.
9 android:drawableStart This is drawable to be drawn to start of the text.
10 android:drawableTop This is drawable to be drawn at top of the text.
11 android:text Sets the text of the EditText.
12 android:textAllCaps Shows text in capital letters.
13 android:textColor Sets color of the text.
14 android:textSize Sets size of the text.
15 android:textStyle Sets style of the text. For example, bold, italic, bolditalic etc.
16 android:typeface Sets typeface of the text. For example, normal, sans, serif, monospace.
17 android:id This attribute is use to provide unique ID to the Button widget.

We have seen different attributes of Button and how to use it. If you wish to visit post to learn more about it

Thus, we have seen what is Button, how can we use android Button using Kotlin ? etc. We also went through different attributes of android Button.

Источник

Button (Кнопка)

Общая информация

Кнопка — один из самых распространенных элементов управления в программировании. Наследуется от TextView и является базовым классом для класса СompoundButton. От класса CompoundButton в свою очередь наследуются такие элементы как CheckBox, ToggleButton и RadioButton. В Android для кнопки используется класс android.widget.Button. На кнопке располагается текст и на кнопку нужно нажать, чтобы получить результат. Альтернативой ей может служить компонент ImageButton (android.widget.ImageButton), у которого вместо текста используется изображение.

В студии кнопка представлена компонентом Button в разделе Widgets. Управлять размером шрифта, цветом текста и другими свойствами можно через атрибут textAppearance, который задействует системные стили. Выпадающий список данного свойства содержит огромный перечень вариантов. Также вы можете вручную задать конкретные индивидуальные настройки через отдельные свойства.

Если вы растягиваете кнопку по всей ширине экрана (android:layout_width=»match_parent»), то дополнительно рекомендую использовать атрибут android:layout_margin (или родственные ему layout_marginRight и layout_marginLeft) для создания отступов от краев экрана (веб-мастера знакомы с этими терминами).

Так как кнопка является наследником TextView, то использует многие знакомые атрибуты: textColor, textSize и др.

Три способа обработки событий нажатий на кнопку

Если вы разместили на экране кнопку и будете нажимать на неё, то ничего не произойдёт. Необходимо написать код, который будет выполняться при нажатии. Существует несколько способов обработки нажатий на кнопку.

Первый способ — атрибут onClick

Относительно новый способ, специально разработанный для Android — использовать атрибут onClick (на панели свойств отображается как On Click):

Имя для события можно выбрать произвольное, но лучше не выпендриваться. Далее нужно прописать в классе активности придуманное вами имя метода, который будет обрабатывать нажатие. Метод должен быть открытым (public) и с одним параметром, использующим объект View. Вам нужно выучить пять слов для создания метода, а сам метод поместить в класс (если вы ещё путаетесь в структуре Java-кода, то вставьте метод перед последней фигурной скобкой):

Когда пользователь нажимает на кнопку, то вызывается метод onMyButtonClick(), который в свою очередь генерирует всплывающее сообщение.

Обратите внимание, что при подобном подходе вам не придётся даже объявлять кнопку через конструкцию (Button)findViewById(R.id.button1), так как Android сама поймёт, что к чему. Данный способ применим не только к кнопке, но и к другим элементам и позволяет сократить количество строк кода.

Второй способ — метод setOnClickListener()

Более традиционный способ в Java — через метод setOnClickListener(), который прослушивает нажатия на кнопку. Так как для начинающего программиста код может показаться сложным, то рекомендуется использовать подсказки студии. Вот как это будет выглядеть. Предположим, у вас на экране уже есть кнопка button. В коде вы объявляете её обычным способом:

Следующий шаг — написание метода для нажатия. Напечатайте имя элемента и поставьте точку button. — среда разработки покажет вам список доступных выражений для продолжения кода. Вы можете вручную просмотреть и выбрать нужный вариант, а можно продолжать набирать символы, чтобы ускорить процесс. Так как с нажатиями кнопок вам часто придётся работать, то запомните название его метода (хотя бы первые несколько символов) — набрав четыре символа (seto), вы увидите один оставшийся вариант, дальше можно сразу нажать клавишу Enter, не набирая оставшиеся символы. У вас появится строка такого вида:

Курсор будет находиться внутри скобок и появится подсказка OnClickListener l. Начинайте набирать new OnClickListener. Здесь также не обязательно набирать имя полностью. Набрав слово Oncl, вы увидете нужный вариант и снова нажимайте Enter. В результате вы получите готовую заготовку для обработки нажатия кнопки:

Теперь у вас есть рабочая заготовка и сразу внутри фигурных скобок метода onClick() вы можете писать свой код. Рекомендую потренироваться и набить руку в создании заготовки. Это не так сложно, и с практикой навык закрепится автоматически.

Как вариант, можно вынести код для OnClickListener в отдельное место, это удобно, когда кнопок на экране несколько и такой подход позволит упорядочить код. Удалите предыдущий пример и начните писать код заново. Принцип такой же, немного меняется порядок. В предыдущем примере мы сразу прописали в методе setOnClickListener слушателя new OnClickListener. с методом onClick(). Можно сначала отдельно объявить отдельную переменную myButtonClickListener:

Во время набора активно используйте подсказки через Ctrl+Space. Набрали несколько символов у первого слова и нажимайте эту комбинацию, набрали после слова new несколько символов и снова нажимайте указанную комбинацию — заготовка будет создана за несколько секунд, а вы избежите возможных опечаток.

У нас есть готовая переменная, и теперь, когда вы будете набирать код button.setOnClickListener, то вместо new OnClickListener впишите готовую переменную.

Для новичка описание может показаться сумбурным и не понятным, но лучше самостоятельно проделать эти операции и понять механизм.

Третий способ — интерфейс OnClickListener

Третий способ является родственным второму способу и также является традиционным для Java. Кнопка присваивает себе обработчика с помощью метода setOnClickListener (View.OnClickListener l), т.е. подойдет любой объект с интерфейсом View.OnClickListener. Мы можем указать, что наш класс Activity будет использовать интерфейс View.OnClickListener.

Опять стираем код от предыдущего примера. Далее после слов extends Activity дописываем слова implements OnClickListener. При появлении подсказки не ошибитесь. Обычно первым идёт интерфейс для диалогов, а вторым нужный нам View.OnClickListener.

Название вашего класса будет подчёркнуто волнистой красной чертой, щёлкните слово public и дождитесь появления красной лампочки, выберите вариант Implement methods. Появится диалоговое окно с выделенным методом onClick. Выбираем его и в коде появится заготовка для нажатия кнопки.

Метод будет реализован не в отдельном объекте-обработчике, а в Activity, который и будет выступать обработчиком. В методе onCreate() присвоим обработчик кнопке. Это будет объект this, т.е. текущий объект нашей активности.

На первых порах такой способ также покажется вам сложным и непонятным. Со временем и опытом понимание обязательно придёт.

Лично я рекомендую вам использовать первый способ, как самый простой и понятный. Использование второго и третьего способа дадут вам представление, как писать обработчики для других событий, так как кнопка может иметь и другие события. Например, кроме обычного нажатия существует долгое нажатие на кнопку (long click). Один из таких примеров с методом касания я привёл в конце этой статьи.

О том, как обрабатывать щелчки кнопки я написал отдельную статью Щелчок кнопки/Счетчик ворон. Также кнопки часто будут встречаться во многих примерах на сайте. Про обработку длительный нажатий можно прочитать в статье, посвященной ImageButton.

Плодитесь и размножайтесь — это про кошек, а не про кнопки

Когда у вас одна кнопка в окне, то у вас будет один метод, две кнопки — два метода и так далее. Если у вас несколько кнопок, то не обязательно для каждой прописывать свой метод, можно обойтись и одним, а уже в самом методе разделять код по идентификатору кнопки. Если вы посмотрите на код в предыдущих примерах, то увидите, что в методе присутствует параметр View, который и позволяет определить, для какой кнопки предназначен кусок кода:

Предположим, у вас есть три кнопки:

Как видите, мы сократили количество кода. Теперь у нас один обработчик onClick(), в котором прописаны действия для трёх кнопок.

Сделать кнопку недоступной

Иногда нужно сделать кнопку недоступной и активировать её при определённых условиях. Через XML нельзя сделать кнопку недоступной (нет подходящего атрибута). Это можно сделать программно через метод setEnabled():

Как альтернативу можете рассмотреть атрибут android:clickable, который позволит кнопке не реагировать на касания, но при этом вид кнопки останется обычным.

Сделать кнопку плоской

Стандартная кнопка на экране выглядит выпуклой. Но в некоторых случаях желательно использовать плоский интерфейс. Раньше для этих целей можно было использовать TextView с обработкой щелчка. Но теперь рекомендуют использовать специальный стиль borderlessButtonStyle:

Кнопка сохранит своё привычное поведение, будет менять свой цвет при нажатии и т.д.

С появлением Material Design добавились другие стили, например, style=»@style/Widget.AppCompat.Button.Borderless», который является предпочтительным вариантом. Попробуйте также style=»@style/Widget.AppCompat.Button.Borderless.Colored»

Коснись меня нежно

Если вы внимательно понаблюдаете за поведением кнопки, то увидите, что код срабатывает в тот момент, когда вы отпускаете свою лапу, извините, палец с кнопки. Для обычных приложений это вполне нормально, а для игр на скорость такой подход может оказаться слишком медленным. В подобных случаях лучше обрабатывать ситуацию не с нажатием кнопки, а с его касанием. В Android есть соответствующий слушатель OnTouchListener():

У метода onTouch() есть параметр MotionEvent, позволяющий более тонко определять касания экрана. Если произойдет событие, когда пользователь коснулся экрана, то ему будет соответствовать константа ACTION_DOWN. Соответственно, если пользователь уберёт палец, то нужно использовать константу ACTION_UP. Таким образом, можете расценивать щелчок кнопки как комбинацию двух событий — касания и отпускания.

Получить текст с кнопки

Навеяно вопросом с форума. Задача — получить текст кнопки в методе onClick(). У метода есть параметр типа View, у которого нет метода getText(). Для этого нужно привести тип к типу Button.

Если у вас несколько кнопок привязаны к методу onClick(), то щелчок покажет текст нажатой кнопки.

Дополнительное чтение

SwipeButton — кнопка с поддержкой свайпа

Библиотеки

dmytrodanylyk/circular-progress-button — ещё один вариант кнопок с индикатором прогресса.

Источник

Читайте также:  Whatsapp для телевизора android
Оцените статью