A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.
С простотой в виду, библиотека Alerter использует паттерн конструктора для легкой интеграции в любое приложение. Пользовательская настраиваемая страница уведомлений динамически добавляется в декоративное представление окна, накладываясь поверх всех данных.
Метод 1:
Создайте har-пакет через библиотеку и добавьте его в папку libs.
Добавьте следующий код в gradle файл entry:
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
Метод 2:
allprojects {
repositories {
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:Alerter:1.0.0'
Запустите проект через DevEco Studio и скачайте SDK. Измените версию dependencies → classpath в файле build.gradle проекта на соответствующую версии вашего IDE.
java
markdown
Button btnDefault = (Button) findComponentById(ResourceTable.Id_btn_alert1);
btnDefault.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.setTitle("Уведомление")
.setText("Текст уведомления...")
.show();
}
});
<!-- Клик событие -->
Button btnOnClick = (Button) findComponentById(ResourceTable.Id_btn_alert2);
btnOnClick.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.setTitle("Alert Title")
.setText("Alert text...")
.setDuration(10000)
.setOnClickListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
new ToastDialog(getContext()).setText("CLICK").show();
}
})
.show();
}
});
```
```markdown
### Самопроизвольные иконки
Кнопка `btnCustomIcon` ищется по ID `ResourceTable.Id_btn_alert3`.
```java
Button btnCustomIcon = (Button) findComponentById(ResourceTable.Id_btn_alert3);
btnCustomIcon.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
try {
Alerter.```markdown
create(MainAbilitySlice.this, componentContainer)
.setCustomLeftIconBig(ResourceTable.Media_custom_icon_big)
.setCustomLeftIconSmall(ResourceTable.Media_custom_icon_small)
.setEnableCustomLeftIconAnim(true)
.setEnableIconAnim(true)
.setTitle("Предупреждающее сообщение: Заголовок")
.setText("Текст предупреждения...")
.setIconSize(500)
.show();
} catch (Exception e) {
```
Здесь текст внутри метода `setTitle` и `setText` был переведён на русский язык, остальные части кода оставлены без изменений.Код не требует перевода, поскольку он представляет собой программный скрипт, который остается без изменений согласно правилам перевода.
Оставлено без изменений:
```
}
});
```### Самопроизвольный фоновый цвет
Кнопка `btnBackGround` ищется по ID `ResourceTable.Id_btn_alert4`.
```java
Button btnBackGround = (Button) findComponentById(ResourceTable.Id_btn_alert4);
btnBackGround.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.setTitle("Alert Title")
.setText("Alert text. . . ")
.setDuration(5000)
.setBackgroundColorInt(0xffF99143)
.show();
}
});
```
``````markdown
<!--Прогресс-->
Button btnProgress = (Button) findComponentById(ResourceTable.Id_btn_alert5);
btnProgress.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setTitle("Заголовок уведомления")
.setText("Текст уведомления. . . ")
.setDuration(5000)
.enableProgress(true)
// .setProgressColorInt(0xff2c9cac)
.show();
}
});
``````markdown
//шрифт
Button btnШРИФТ = (Button) findComponentById(ResourceTable.Id_btn_alert6);
btnШРИФТ.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
copyTTF();
Alert alert = Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.setTitle("Заголовок алерта")
.setText("Текст алерта. . . ")
.setDuration(5000)
.show();
}
});
```markdown
### Callback
Кнопка `btnCallback` инициализируется следующим образом:
```java
Button btnCallback = (Button) findComponentById(ResourceTable.Id_btn_alert7);
btnCallback.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.setTitle("Alert Title")
.setText("Alert text. . . ")
.setDuration(5000)
.setOnShowListener(new OnShowAlertListener() {
@Override
public void onShow() {
new ToastDialog(getContext()).setText("show").show();
}
})
.setOnHideListener(new OnHideAlertListener() {
@Override
public void onHide() {
new ToastDialog(getContext()).setText("hide").show();
}
})
.show();
}
});
```
```markdown
## Обратный вызов
Кнопка `btnCallback` инициализируется следующим образом:
```java
Button btnCallback = (Button) findComponentById(ResourceTable.Id_btn_alert7);
btnCallback.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.setTitle("Alert Title")
.setText("Alert text. . . ")
.setDuration(5000)
.setOnShowListener(new OnShowAlertListener() {
@Override
public void onShow() {
new ToastDialog(getContext()).setText("show").show();
}
})
.setOnHideListener(new OnHideAlertListener() {
@Override
public void onHide() {
new ToastDialog(getContext()).setText("hide").show();
}
})
.show();
}
});
```
``````markdown
// Добавление кнопки
Button btnAddButton = (Button) findComponentById(ResourceTable.Id_btn_alert8);
btnAddButton.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.setTitle("Заголовок уведомления")
.setText("Текст уведомления...")
.setDuration(5000)
.addButton("ДА", 0xffffffff, 0xffF99143, 200, 60, new Component.ClickedListener() {
@Override
public void onClick(Component component) {
new ToastDialog(getContext()).setText("да").show();
}
})
.addButton("НЕТ", 0xffffffff, 0xffF99143, 200, 60, new Component.ClickedListener() {
@Override
public void onClick(Component component) {
new ToastDialog(getContext()).setText("нет").show();
}
})
.show();
}
});
``````markdown
<!-- Подробный -->
Кнопка btnVerbose = (Кнопка) findComponentById(ResourceTable.Id_btn_alert10);
btnVerbose.setClickedListener(новый Component.ClickedListener() {
@Переопределение
публичный void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(истинно)
.setTitle("Заголовок уведомления")
.setText("Уведомление масштабируется для размещения больших объемов текста. Уведомление масштабируется для размещения больших объемов текста. Уведомление масштабируется для размещения больших объемов текста.")
.show();
}
});
``` // Центральное уведомление
Кнопка btnCenter = (Кнопка) findComponentById(ResourceTable.Id_btn_alert11);
btnCenter.setClickedListener(новый Component.ClickedListener() {
@Переопределение
публичный void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(истинно)
.setTitle("Центральное уведомление")
.setText("Текст центрального уведомления...")
.setContentGravity(DependentLayout.LayoutConfig.CENTER_IN_PARENT)
.показать();
}
});```markdown
<!-- Вывод нижнего модального окна -->
Button btnBottom = (Button) findComponentById(ResourceTable.Id_btn_alert12);
btnBottom.setClickedListener(new Component.ClickedListener() {
@Переопределение
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.setTitle("Заголовок уведомления")
.setText("Текст уведомления...")
.setContentGravity(DependentLayout.LayoutConfig.ALIGN_PARENT_BOTTOM)
.show();
}
});
// Вариант с правым значком в диалоге
Button btnWithRightIcon = (Button) findComponentById(ResourceTable.Id_btn_alert13);
btnWithRightIcon.setClickedListener(new Component.ClickedListener() {
@Переопределение
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setCustomRightIconBig(ResourceTable.Media_custom_icon_big)
.setCustomRightIconSmall(ResourceTable.Media_custom_icon_small)
.setEnableCustomRightIconAnim(true)
.setEnableRightIcon(true)
.setEnableIconAnim(true)
.setTitle("Заголовок уведомления")
.setText("Текст уведомления...")
```
```markdown
.show();
}
};
``````java
// Только правый значок в диалоге
Button btnOnlyRightIcon = (Button) findComponentById(ResourceTable.Id_btn_alert14);
btnOnlyRightIcon.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setCustomRightIconBig(ResourceTable.Media_custom_icon_big)
.setCustomRightIconSmall(ResourceTable.Media_custom_icon_small)
.setEnableCustomRightIconAnim(true)
.setEnableOnlyRightIcon(true)
.setEnableRightIcon(true)
.setEnableIconAnim(true)
.setTitle("Alert Title")
.setText("Alert text...")
.show();
}
});
```
```markdown
// Правый верхний угол иконка всплывающего окна
Button btnRightOnTopIcon = (Button) findComponentById(ResourceTable.Id_btn_alert15);
btnRightOnTopIcon.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setCustomRightIconBig(ResourceTable.Media_custom_icon_big)
.setCustomRightIconSmall(ResourceTable.Media_custom_icon_small)
.setRightIconTop()
.setEnableCustomRightIconAnim(true)
.setEnableOnlyRightIcon(true)
.setEnableRightIcon(true)
.setEnableIconAnim(true)
.setText("Уведомление масштабируется для размещения больших объемов текста.\n" +
"Уведомление масштабируется для размещения больших объемов текста.\n" +
"Уведомление масштабируется для размещения больших объемов текста.")
.show();
}
});
```// только текст
Button btnOnlyText = (Button) findComponentById(ResourceTable.Id_btn_alert16);
btnOnlyText.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.setText("Текст уведомления")
.show();
}
});```markdown
// С клаксоном
Button btnSound = (Button) findComponentById(ResourceTable.Id_btn_alert17);
btnSound.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
copyMp3File();
Alerter.create(MainAbilitySlice.this, componentContainer)
.setSoundUri(Uri.parse(getFilesDir() + File.separator + "ringtone.mp3"))
.setEnableIconAnim(true)
.setTitle("Заголовок уведомления")
.setText("Текст уведомления...")
.show();
}
});
```
```markdown
<!-- С прокруткой -->
Button btnSwipeDismiss = (Button) findComponentById(ResourceTable.Id_btn_alert18);
btnSwipeDismiss.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.enableSwipeToDismiss()
.setTitle("Заголовок уведомления")
.setText("Текст уведомления...")
.show();
}
});
``````java
// Установка цвета текста для заголовка
Button btnCustomTextColor = (Button) findComponentById(ResourceTable.Id_btn_alert19);
btnCustomTextColor.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Alert alert = Alerter.create(MainAbilitySlice.this, componentContainer)
.setEnableIconAnim(true)
.setTitle("Заголовок уведомления")
.setText("Текст уведомления...")
.show();
alert.getTitle().setTextColor(new Color(0xffF99143));
alert.getText().setTextColor(new Color(0xffcc0000));
}
});
```
```xml
<?xml version="1.0" encoding="utf-8"?>
<DependentLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:id="$+id:dl_group"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:background_element="#fff"
>
```
```xml
<DependentLayout
ohos:id="$+id:titlebar"
ohos:top_margin="50vp"
ohos:height="50vp"
ohos:width="match_parent"
ohos:background_element="#2c9cac">
<Text
ohos:text_color="#fff"
ohos:text="Предупреждение"
ohos:text_alignment="horizontal_center"
ohos:center_in_parent="true"
ohos:align_parent_left="true"
ohos:left_margin="20vp"
ohos:text_size="20fp"
ohos:height="match_content"
ohos:width="match_content"/>
</DependentLayout>
<ScrollView
ohos:below="$id:titlebar"
ohos:layout_alignment="horizontal_center"
ohos:top_margin="10vp"
ohos:height="match_parent"
ohos:width="match_parent">
<DependentLayout
ohos:height="match_content"
ohos:width="match_parent">
``` <Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:id="$+id:btn_alert1"
ohos:text="ЗАГОЛОВОЧНОЕ УВЕДОМЛЕНИЕ"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:top_margin="10vp"
ohos:text_size="18fp"
ohos:width="match_parent"/>
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:id="$+id:btn_alert2"
ohos:below="$+id:btn_alert1"
ohos:top_margin="10vp"
ohos:text="УВЕДОМЛЕНИЕ ПРИ КЛИКЕ"
ohos:height="50vp"
ohos:text_size="18fp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:id="$+id:btn_alert3"
ohos:below="$+id:btn_alert2"
ohos:top_margin="10vp"
ohos:text_size="18fp"
ohos:text="УВЕДОМЛЕНИЕ С ПОДХОДЯЩИМ ИКОНОЧНЫМ ОБРАЗОМ"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
``````markdown
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert3"
ohos:id="$+id:btn_alert4"
ohos:top_margin="10vp"
ohos:text="Обнаружение с окрашенным текстом"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
``````markdown
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert4"
ohos:id="$+id:btn_alert5"
ohos:top_margin="10vp"
ohos:text="ОБНАРУЖЕНИЕ С ПРОГРЕССОМ"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert5"
ohos:id="$+id:btn_alert6"
ohos:top_margin="10vp"
ohos:text="ОБНАРУЖЕНИЕ ШРИФТА"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
```
```markdown
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert6"
ohos:id="$+id:btn_alert7"
ohos:top_margin="10vp"
ohos:text="ПЕРЕДАЧА ОБРАЩЕНИЯ"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
```
```markdown
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert7"
ohos:id="$+id:btn_alert8"
ohos:top_margin="10vp"
ohos:text="Сообщение с кнопкой"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert8"
ohos:id="$+id:btn_alert9"
ohos:top_margin="10vp"
ohos:text="Пользовательский макет сообщения"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
```<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert9"
ohos:id="$+id:btn_alert10"
ohos:top_margin="10vp"
ohos:text="Полное сообщение"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
``````markdown
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert10"
ohos:id="$+id:btn_alert11"
ohos:top_margin="10vp"
ohos:text="ЦЕНТРÁЛЬНЫЙ АЛЕРТ"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
```
```markdown
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert11"
ohos:id="$+id:btn_alert12"
ohos:top_margin="10vp"
ohos:text="НИЖНЯЯ АЛЕРТ"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert12"
ohos:id="$+id:btn_alert13"
ohos:top_margin="10vp"
ohos:text="С ПРАВОЙ ИКОНОК"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert13"
ohos:id="$+id:btn_alert14"
ohos:top_margin="10vp"
ohos:text="С ТОЛЬКО ПРАВОЙ ИКОНОК"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
``````markdown
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert14"
ohos:id="$+id:btn_alert15"
ohos:top_margin="10vp"
ohos:text="ПРАВАЯ ИКОНКА В ТОЧКЕ"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
```
```markdown
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert15"
ohos:id="$+id:btn_alert16"
ohos:top_margin="10vp"
ohos:text="ТЕКСТОВОЕ УВЕДОМЛЕНИЕ"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
```<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert16"
ohos:id="$+id:btn_alert17"
ohos:top_margin="10vp"
ohos:text="Уведомление с обращением"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:below="$+id:btn_alert17"
ohos:id="$+id:btn_alert18"
ohos:top_margin="10vp"
ohos:text="Уведомление с выпадением"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:left_margin="30vp"
ohos:right_margin="30vp"
ohos:width="match_parent"/>```markdown
<Button
ohos:background_element="$graphic:background_element"
ohos:text_color="#fff"
ohos:id="@id:btn_alert18"
ohos:id="$+id:btn_alert19"
ohos:margins_bottom="10vp"
ohos:text="ПОДХОДЯЩИЙ ЦВЕТ ТЕКСТА"
ohos:margins_top="20vp"
ohos:text_size="18fp"
ohos:height="50vp"
ohos:margins_left="30vp"
ohos:margins_right="30vp"
ohos:width="match_parent"/>
</DependentLayout>
</ScrollableLayout>
```
```## Лицензия
См. файл LICENSE для информации о правах лицензии и ограничениях (MIT).
Copyright 2017 года Tapadoo, Дублин.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )