Программное создание кнопки с закругленными углами

| 26.03.2014

В данном уроке мы рассмотрим программное создание кнопки с закругленными углами. Альтернативный способ — создание соответствующих картинок, но об этом мы поговорим в следующий раз.

Итак, создадим новый проект и новое активити — MainActivity.java:

1
2
3
4
5
6
7
8
9
10
11
12
13
package ru.androiddocs.roundedbutton;
 
import android.os.Bundle;
import android.app.Activity;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }	
}

Сверстаем наш экран, который будет состоять только из одной кнопки — res/layout/activity_main.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"              
        android:background="@drawable/rounded_button"
        android:textColor="#fff"
        android:text="@string/btn_text" />
 
</LinearLayout>

Вы уже, наверное, обратили внимание, что в качестве бэкграунда для кнопки мы указываем ссылку на ресурс @drawable/rounded_button. Это xml-файл, в котором мы зададим атрибуты для кнопки. Расположение ресурса — res/drawable-hdpi/rounded_button.xml. Для устройств с другими размерами экрана можно создать одноименные файлы и поместить их в соответствующие папки. Содержимое файла:

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#0d0524" />
    <corners android:bottomRightRadius="10dp"
        android:bottomLeftRadius="10dp"  
        android:topRightRadius="10dp"
        android:topLeftRadius="10dp"/>
</shape>

Закругленные углы задаются с помощью тега corners и его атрибутов bottomRightRadius, bottomLeftRadius, topRightRadius и topLeftRadius. Чем больше числовое значение этих атрибутов, тем больше закругление углов имеет кнопка.

Ну и последнее, что требуется создать — это файл со строковыми ресурсами, где мы помещаем значение текста для кнопки:

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">RoundedButton</string>
    <string name="action_settings">Settings</string>
    <string name="btn_text">Тест кнопка</string>
</resources>

Если запустить приложение на эмуляторе, то мы получим такой экран:

Программное создание кнопки с закругленными углами

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*