Подтвердить что ты не робот

Как создать пользовательскую кнопку в Android с помощью стилей XML

Я хочу сделать такие кнопки [одинаковые цвета фона и текста] с помощью стилей XML

enter image description here

что только для примера, я хочу написать некоторые другие тексты, например: Обо мне

Тем не менее, я использую кнопку, созданную дизайнером в Photoshop

    <ImageButton
        android:id="@+id/imageButton5"
        android:contentDescription="AboutUs"
        android:layout_width="wrap_content"
        android:layout_marginTop="8dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/view_pager"
        android:layout_centerHorizontal="true"
        android:background="@drawable/aboutus" />

Примечание: Мне нужна такая кнопка в каждом размере и форме

Я не хочу использовать какое-либо изображение в своем приложении для Android. Я хочу сделать его с помощью только XML.

4b9b3361

Ответ 1

Вы когда-нибудь пытались создать форму фона для любых кнопок?

Проверьте это ниже:

Ниже представлено разделенное изображение с вашего изображения кнопки.

enter image description here

Теперь поместите это в свой ImageButton для android: src "source", например:

android:src="@drawable/twitter"

Теперь просто создайте форму ImageButton, чтобы иметь черный фон шейдера.

android:background="@drawable/button_shape"

а button_shape - это xml файл в ресурсе с возможностью рисования:

    <?xml version="1.0" encoding="UTF-8"?>
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke 
        android:width="1dp" 
        android:color="#505050"/>
    <corners 
        android:radius="7dp" />

    <padding 
        android:left="1dp"
        android:right="1dp"
        android:top="1dp"
        android:bottom="1dp"/>

    <solid android:color="#505050"/>

</shape>

Просто попробуйте реализовать это с помощью этого. Возможно, вам потребуется изменить значение цвета в соответствии с вашим требованием.

Сообщите мне, если это не сработает.

Ответ 2

Скопируйте с помощью рецепта, написанного "Adrián Santalla" на androidcookbook.com: https://www.androidcookbook.com/Recipe.seam?recipeId=3307

1. Создайте XML файл, который представляет состояния кнопок

Создайте xml в drawable, названный 'button.xml', чтобы назвать состояния кнопок:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"
        android:drawable="@drawable/button_disabled" />
    <item
    	android:state_pressed="true"
    	android:state_enabled="true"
        android:drawable="@drawable/button_pressed" />
    <item
    	android:state_focused="true"
    	android:state_enabled="true"
        android:drawable="@drawable/button_focused" />
    <item
    	android:state_enabled="true"
        android:drawable="@drawable/button_enabled" />
</selector>

Ответ 3

Посмотрите Styled Button, это наверняка поможет вам. Есть много примеров, которые можно найти в Интернете.

например: стиль

<style name="Widget.Button" parent="android:Widget">
    <item name="android:background">@drawable/red_dot</item>
</style>

вы можете использовать свой селектор вместо red_dot

red_dot:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"  >

    <solid android:color="#f00"/>
    <size android:width="55dip"
        android:height="55dip"/>
</shape>

Кнопка

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="49dp"
        style="@style/Widget.Button"
        android:text="Button" />

Ответ 4

<?xml version="1.0" encoding="utf-8"?>
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

   <solid 
       android:color="#ffffffff"/>

   <size 
       android:width="@dimen/shape_circle_width"
        android:height="@dimen/shape_circle_height"/>
</shape>

1.add это в ваших доступных

2.set в качестве фона для вашей кнопки