2015-03-02 3 views
2

Мне нужна кнопка круга для моего Android APP, я прочитал около 9 патчей для кнопок. Мне также нужно, чтобы кнопка меняла свой цвет при нажатии.Круглая кнопка в Android

Является ли это 9 исправлением наилучшего подхода, или я должен использовать другой метод?

Заранее спасибо.

+0

возможно дубликат [Пользовательская кнопка круг] (HTTP : //stackoverflow.com/questions/9884202/custom-circle-button) –

+0

Вы должны использовать пользовательский фон, как описано в [этом вопросе] (http://stackoverflow.com/a/9884428/4428462) – JonasCz

+0

Здесь пример https://github.com/arlindiDev/CircleCheckBox – Arlind

ответ

2

Вы можете сделать следующее:

1) Создание Drawable/button_states.xml файл, содержащий:

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

    <item android:state_pressed="false" 
     android:drawable="@drawable/button_not_pressed"/> 

    <item android:state_pressed="true" 
     android:drawable="@drawable/button_pressed"/> 

</selector> 

2) Создать файл файл вытяжке/button_pressed.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> 
    <solid android:color="#fff" /> 
    <corners android:radius="30dp"></corners> 
</shape> 

3) Создайте файл файл вытяжка/button_not_pressed.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> 
    <solid android:color="#000" /> 
    <corners android:radius="30dp"></corners> 
</shape> 

4) В кнопке использовать это нравится:

<Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/button_states" 
     android:text="New Button" 
     android:id="@+id/button1" /> 

Надеется, что это помогает !!!

+1

Спасибо, @Ko stasMatrix Я попробую с 9 патчем. –

1

Просто создайте Drawable файл ресурсов, как это:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval"> 
    <solid android:color="#FFFFFF"/> <!--the color you want as background--> 
</shape> 

и в файле XML, в котором вам нужно эту кнопку, установите его происхождение с именем файла, созданного выше, и его высота и ширина равна , чтобы получить кнопку круга:

<Button 
    android:id="@+id/button" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:text="Button" 
    android:background="@drawable/nameOfTheDrawableYouCreatedBefore"/> 
0

Вы можете использовать специальную библиотеку, чтобы легко добавить кнопку «Круг». Я рекомендую вам использовать это: https://github.com/makovkastar/FloatingActionButton Это очень просто. просто добавьте этот код в ваш XML:

<com.melnykov.fab.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|right" 
      android:layout_margin="16dp" 
      android:src="@drawable/ic_action_content_new" 
      fab:fab_colorNormal="@color/primary" 
      fab:fab_colorPressed="@color/primary_pressed" 
      fab:fab_colorRipple="@color/ripple" /> 

не забудьте добавить код Тхи в родительский тег:

 xmlns:fab="http://schemas.android.com/apk/res-auto" 
1

1.Create растяжимой/button_states.xml файл, содержащий:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="false"> 
     <shape android:shape="rectangle"> 
     <corners android:radius="1000dp" /> 
     <solid android:color="#41ba7a" /> 
     <stroke 
      android:width="2dip" 
      android:color="#03ae3c" /> 
     <padding 
      android:bottom="4dp" 
      android:left="4dp" 
      android:right="4dp" 
      android:top="4dp" /> 
     </shape> 
    </item> 
    <item android:state_pressed="true"> 
     <shape android:shape="rectangle"> 
     <corners android:radius="1000dp" /> 
     <solid android:color="#3AA76D" /> 
     <stroke 
      android:width="2dip" 
      android:color="#03ae3c" /> 
     <padding 
      android:bottom="4dp" 
      android:left="4dp" 
      android:right="4dp" 
      android:top="4dp" /> 
     </shape> 
    </item> 
</selector> 

2.Use его в кнопку тега в любом файле макета

<Button 
    android:layout_width="220dp" 
    android:layout_height="220dp" 
    android:background="@drawable/button_states" 
    android:text="@string/btn_scan_qr" 
    android:id="@+id/btn_scan_qr" 
    android:textSize="15dp" 
/> 
Смежные вопросы