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

Стиль андроид-кнопки

Нормальная кнопка выглядит следующим образом:

alt text

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

alt text

4b9b3361

Ответ 1

9-patch будет отлично работать здесь, но я стараюсь избегать их, так как мне тяжело это делать: (

Вы можете попробовать иметь selector и использовать форму для каждого состояния:

Форма будет выглядеть так:

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

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

    <corners android:bottomRightRadius="7dp"
        android:bottomLeftRadius="7dp" 
        android:topLeftRadius="7dp"
        android:topRightRadius="7dp"/>
</shape>

Ответ 3

1- создавать фигуры (с желаемыми цветами) для нажатых и высвобождаемых состояний

Чтобы создать фигуры, которые я предложил бы на этом великолепном веб-сайте, сделайте это за вас: http://angrytools.com/android/button/

вытяжке\botton_shape_pressed.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="@color/pressed_button_background"
        android:endColor="@color/pressed_button_background"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>

вытяжке\botton_shape_released.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="@color/released_button_background"
        android:endColor="@color/released_button_background"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>

2- создайте селектор для двух фигур

вытяжке\botton_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/botton_shape_pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/botton_shape_pressed"
          android:state_selected="true" />
    <item android:drawable="@drawable/botton_shape_released" />
</selector>

3- используйте селектор для кнопки

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/test"
    android:textColor="@color/blue_text"
    android:onClick="testOnClickListener"
    android:background="@drawable/botton_selector" />

Ответ 4

Вам нужно создать 9-patch. Чтобы не иметь пробела (поля) между кнопками, вам нужно создать соответствующий макет в XML и установить значение поля 0.

Ответ 5

Создайте Nine patch drawable, который легко с draw9patch (часть android/tools), а затем примените стили и темы... учебник на этой ссылке (Androgames.net) должен начать работу.

Ответ 6

найдите исходный код с четырьмя запросами и посмотрите файл SegmentedButton.java, это файл, который реализует эти кнопки, показанные на изображении.

Ответ 7

Я хотел бы поделиться одной статьей, которую стоит реализовать для Button. Вот статья: http://www.dibbus.com/2011/03/9patch-images-in-android/, ее действительно хорошая и удивительная статья.

Ответ 8

чтобы стилизовать текст, который вы можете добавить в файл strings.xml

    <style name="ButtonText">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">#ffffff</item>
    <item name="android:gravity">center</item>
    <item name="android:layout_margin">3dp</item>
    <item name="android:textSize">30dp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:shadowColor">#000000</item>
    <item name="android:shadowDx">1</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">2</item>
    </style>

и назовите его в кнопке main.xml

 style="@style/ButtonText"

и альтернативный метод, с которым вы можете играть, создает в @drawable/btn_black следующее:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#343434" />
            <stroke
                android:width="1dp"
                android:color="#171717" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#343434"
                android:endColor="#171717"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#171717" />
            <corners
                android:radius="4dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

Ответ 9

Вы также можете использовать ImageView в своем XML файле, а затем дать onClickable и onFocusable true, а затем создать метод события onClick для кода backend и указать имя метода в xml, чтобы вместо того, чтобы иметь дело со всеми проблемами формы или кнопки, вы просто поместите изображение в него и заставьте его действовать как кнопка. Вот пример кода для вас.

<ImageView
            android:id="@+id/test"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:focusable="true"
            android:onClick="testClickEvent"
            android:paddingRight="8dip"
            android:paddingBottom="8dip"
            android:src="@drawable/testImg"/>

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

public void testClickEvent(View v){}

Затем выполните то, что вы хотите сделать в этом методе

Ответ 10

button_primary.xml

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

        <gradient
            android:angle="270"
            android:endColor="@color/background"
            android:startColor="@color/background" />

        <corners android:radius="1dp" />

        <stroke
            android:width="2px"
            android:color="@color/colorPrimary3" />

    </shape>

Вызов стиль = "@стиль/button_primary"