Android Process Button — кнопка с прогрессбаром

Наткнулся на довольно необычную библиотеку, объединяющую кнопку и прогрессбар в одном View. На выбор нам дается три вида кнопки (для просмотра анимации нажмите на картинку):

1) ActionProcessButton

PROGRESS

ActionProcessButton

 

ENDLESS

ActionProcessButton_endless

2) GenerateProcessButton

GenerateProcessButton

3) SubmitProcessButton

SubmitProcessButton

Все View-компоненты описанные выше наследуются от класса ProcessButton.

ActionProcessButton

main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:custom="http://schemas.android.com/apk/res-auto"
	android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
	>
	<com.dd.processbutton.iml.ActionProcessButton
		android:id="@+id/btnSignInAPB"
		android:layout_width="match_parent"
		android:layout_height="48dp"
		android:layout_marginBottom="16dp"
		android:text="Войти"
		android:textColor="#fffffe"
		android:textSize="18sp"
		custom:pb_colorComplete="@color/green_complete"
		custom:pb_colorNormal="@color/blue_normal"
		custom:pb_colorPressed="@color/blue_pressed"
		custom:pb_colorProgress="@color/purple_progress"
		custom:pb_textComplete="Авторизован"
		custom:pb_textProgress="Авторизуемся..." />
</LinearLayout>

Разберем атрибуты с префиксом custom:

pb_colorNormal — цвет кнопки в обычном состоянии

pb_colorPressed — цвет кнопки в обычно состоянии

pb_colorProgress — цвет прогрессбара

pb_textProgress — текст, отображающийся при загрузке

pb_colorComplete — текст, отображающийся после завершения загрузки

MainActivity.java:

ActionProcessButton btnSignIn = (ActionProcessButton) findViewById(R.id.btnSignInAPB); btnSignIn.setMode(ActionProcessButton.Mode.PROGRESS);

В методе setMode мы указываем тип загрузки. Всего доступно два типа: PROGRESS и ENDLESS. По умолчанию установлен ENDLESS.

GenerateProcessButton

main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:custom="http://schemas.android.com/apk/res-auto"
	android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
	>
    <com.dd.processbutton.iml.GenerateProcessButton
        android:id="@+id/btnUpload"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:text="Загрузить"
        android:textColor="@android:color/white"
        android:textSize="18sp"
        custom:pb_textComplete="Загружено"
        custom:pb_textProgress="Загрузка..." />
</LinearLayout>

MainActivity.java:

GenerateProcessButton btnUpload = (GenerateProcessButton) findViewById(R.id.btnUpload);
SubmitProcessButton

main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:custom="http://schemas.android.com/apk/res-auto"
	android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
	>
    <com.dd.processbutton.iml.SubmitProcessButton
        android:id="@+id/btnSend"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:minWidth="100dp"
        android:text="Отправить"
        android:textColor="@android:color/white"
        android:textSize="18sp"
        custom:pb_textComplete="Готово"
        custom:pb_textProgress="Загрузка..." />
</LinearLayout>

MainActivity.java:

SubmitProcessButton btnSend = (SubmitProcessButton) findViewById(R.id.btnSend);

Библиотека на GitHub: ProcessButton.
Исходники примера: ProcessButton.

Комментарии:

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

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