allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}
}
dependencies {
implementation('com.gitee.chinasoft_ohos:LiveGiftLayout:1.0.0')
......
}
В SDK6 и DevEco Studio 2.2 Beta1 проект можно запустить напрямую. Если запуск невозможен, удалите файлы проекта .gradle, .idea, build, gradle, build.gradle и создайте новый проект с вашей версией. Скопируйте соответствующие файлы из нового проекта в корневой каталог.
<?xml version="1.0" encoding="utf-8"?>
<DependentLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent">
<Image
ohos:id="$+id:bg"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:image_src="$media:ic_bg"
ohos:scale_mode="clip_center"/>
<ListContainer
ohos:id="$+id:recyclerView"
ohos:height="300vp"
ohos:width="180vp"
ohos:align_parent_right="true"/>
<DirectionalLayout
ohos:id="$+id:ll_gift_parent"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:align_parent_bottom="true"
ohos:alignment="bottom"
ohos:top_margin="130vp"
ohos:bottom_margin="280vp"
ohos:orientation="vertical">
</DirectionalLayout>
<Button
ohos:id="$+id:action"
ohos:height="match_content"
ohos:width="match_content"
ohos:background_element="$graphic:background_ability_main"
ohos:bottom_padding="8vp"
ohos:horizontal_center="true"
ohos:left_padding="10vp"
ohos:right_padding="10vp"
ohos:text="礼物面板显示/隐藏"
ohos:text_size="15fp"
ohos:top_margin="50vp"
ohos:top_padding="8vp"/>
<ScrollView
ohos:height="200vp"
ohos:width="match_parent"
ohos:below="$+id:action"
ohos:top_margin="20vp">
<DirectionalLayout
ohos:height="match_parent"
ohos:width="match_parent"
ohos:orientation="vertical">
<Checkbox
ohos:id="$+id:rb_currentStart"
ohos:height="match_content"
ohos:width="match_content"
ohos:text="是否使用当前礼物数开始显示"
ohos:text_color_off="$color:white"
ohos:text_color_on="$color:white"
ohos:text_size="22fp"/>
<Checkbox
ohos:id="$+id:rb_displayMode"
ohos:height="match_content"
ohos:width="match_content"
ohos:marked="true"
ohos:text="是否由下往上显示"
ohos:text_color_off="$color:white"
ohos:text_color_on="$color:white"
ohos:text_size="22fp"
ohos:top_margin="5vp"/>
<Checkbox
ohos:id="$+id:rb_hideMode"
ohos:height="match_content"
ohos:width="match_content"
ohos:text="是否开启隐藏动画"
ohos:text_color_off="$color:white"
ohos:text_color_on="$color:white"
ohos:text_size="22fp"
ohos:top_margin="5vp"/>
</DirectionalLayout>
</ScrollView>
<DependentLayout
ohos:height="match_content"
ohos:width="match_parent"
ohos:align_parent_bottom="true"
ohos:bottom_margin="10vp">
<Button
ohos:id="$+id:btn_clear_gift"
ohos:height="match_content"
ohos:width="match_content"
ohos:background_element="$graphic:background_ability_main"
ohos:bottom_padding="8vp"
ohos:left_padding="18vp"
ohos:margin="3vp" **ohos:right_padding="18vp"** — ohos:right_padding = "18vp".
**ohos:text="清除礼物"** — охos:текст = «очистить подарок».
**ohos:text_size="14vp"** — ohos:text_size = "14vp".
**ohos:top_padding="8vp"/**/ — ohos:top_padding = "8vp".
*И так далее.*
2. В странице можно найти элемент управления и инициализировать модуль подарков.
a. Панель подарков.
Код:
Здесь, если вы хотите использовать локальное изображение подарка, используйте напрямую:
`giftPanelControl.init(null);` // здесь, если null, загрузите локальное изображение подарка.
GiftPanelControl giftPanelControl = new GiftPanelControl(this, mViewpager, mRecyclerView, mDotsLayout); giftPanelControl.init(null);//здесь, если null, загрузить локальное изображение подарка giftPanelControl.setGiftListener(new GiftPanelControl.GiftListener() { @Override public void getGiftInfo(String giftPic, String giftName, String giftPrice) { mGifturl = giftPic; mGiftName = giftName; } });
Здесь в параметре `giftPic` я передаю имя изображения из файла ресурсов, вы также можете передать идентификатор изображения.
b. Показать подарок.
Метод `setGiftLayout(giftParent, 3)` устанавливает количество дорожек для подарков. Метод `setCustormAnim(new CustormAnim())` позволяет расширить анимацию подарков без изменения исходного кода.
final DirectionalLayout giftParent = (DirectionalLayout) findComponentById(ResourceTable.Id_ll_gift_parent); giftControl = new GiftControl(this); giftControl.setGiftLayout(giftParent, 3).setHideMode(false) .setCustormAnim(new CustomAnim());//здесь можно настроить анимацию подарка
c. Отображение панели количества подарков.
tvGiftNum.setClickedListener(v -> pop.setVisibility(Component.VISIBLE));
d. Операция отправки подарка на панели подарков.
Если вы хотите начать серию нажатий с определённого количества подарков, вы можете установить `setCurrentStart(true)` и `setHitCombo(giftnum)` перед созданием `GiftModel`. Таким образом, это может быть реализовано.
Совет: здесь метод `setCurrentStart()` должен быть установлен в `true`, чтобы метод `setHitCombo()` вступил в силу. ```
.setCurrentStart(currentStart);
if (currentStart) {
giftModel.setHitCombo(giftnum);
}
giftControl.loadGift(giftModel);
adapter.add(mGiftName);
System.out.println("onClick: " + giftControl.getShowingGiftLayoutCount());
}
}
});
e. Простая операция привела к отображению разных панелей на горизонтальном и вертикальном экранах.
findComponentById(ResourceTable.Id_action).setClickedListener(v -> {
if (giftLayout.getVisibility() == Component.VISIBLE) {
giftLayout.setVisibility(Component.HIDE);
} else {
giftLayout.setVisibility(Component.VISIBLE);
}
});
f. Подобно переключению между трансляциями, можно повторно отправить подарок (переключение реализовано функционально, но не визуально).
findComponentById(ResourceTable.Id_btn_clear_gift).setClickedListener(v -> {
if (giftControl != null) {
giftControl.cleanAll();
}
});
findComponentById(ResourceTable.Id_btn_reset_gift).setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component v) {
giftControl.reSetGiftLayout(giftParent, 3)
.setHideMode(false);
}
});
#### 测试信息
CodeCheck код протестирован без исключений.
CloudTest код протестирован без исключений.
Вирусная безопасность проверена.
Текущая версия demo функции в основном идентична исходному компоненту.
#### Версия
1.0.0
#### Информация о лицензии и авторских правах
Apache License 2.0
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )