С простотой в виду, библиотека 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 )