Клон BannerView от Meizu, компонент для плавного прокручивания изображений. Поддерживает несколько режимов работы: использование ViewPager, обычный баннер и клон баннера от Meizu.
Метод 1:
Создание HAR-пакета с помощью библиотеки и добавление его в папку libs
Добавьте следующий код в gradle файл проекта entry
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
Метод 2:
allprojects {
repositories {
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:MZBannerView:1.0.0'
Через DevEco Studio и установка SDK Измените версию dependencies → classpath в build.gradle вашего проекта на ту, что используется при создании нового проекта IDE
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
xmlns:app="http://schemas.huawei.com/res/app"
ohos:width="match_parent"
ohos:height="match_parent"
ohos:orientation="vertical">
<Text
ohos:width="match_parent"
ohos:height="match_content"
ohos:text_color="#aaa"
ohos:text_size="20vp"
ohos:text="Клон баннера Meizu (сетевой)"
ohos:text_alignment="center"
/>
<com.zhouwei.mzbanner.MZBannerView
ohos:id="$+id:banner"
ohos:width="match_parent"
ohos:height="160vp"
ohos:top_margin="10vp"
app:open_mz_mode="true"
app:can_loop="true"
app:middle_page_cover="true"
app:indicator_align="center"
app:indicator_padding_left="10vp"
app:indicator_padding_bottom="50vp"
/>
``` <Text
ohos:width="match_parent"
ohos:height="match_content"
ohos:text_color="#aaa"
ohos:text_size="20fp"
ohos:text="Обычный баннер (сетевой)"
ohos:text_alignment="center"
ohos:top_margin="20vp"
/>
<com.zhouwei.mzbanner.MZBannerView
ohos:id="$+id:banner_normal"
ohos:width="match_parent"
ohos:height="200vp"
ohos:top_margin="10vp"
app:open_mz_mode="false"
app:canLoop="true"
app:indicator_align="center"
/>
```</DirectionalLayout>
public class NetImagesAbilitySlice extends AbilitySlice {
``` private MZBannerView mMZBanner;
private MZBannerView mNormalBanner;
private static String[] imagesMZ = {
"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farticle%2F725c03f7f1c7346291e8a4b7187e2b7ad762fd3c.jpg&refer=http%3A%2F%2Fi0.hdslb.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1613116329&t=22500bdcab3b90b7a7ee38330acecb34",
"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fwww.wallcoo.com%2Fnature%2F2009_Landscape_1680_Desktop_03%2Fwallpapers%2F1280x1024%2FAgricultural%2520Fields%2520and%2520Village%2520Tibet.jpg&refer=http%3A%2F%2Fwww.wallcoo.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1613116329&t=38ec6713b22d2f9a903da65d608a51e6",
"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg2.3lian.com%2F2014%2Ff5%2F11%2Fd%2F51.jpg&refer=http%3A%2F%2Fimg2.3lian.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1613116329&t=3620fb9390585ac6d01e8fc4821bd207",
"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimage.biaobaiju.com%2Fuploads%2F20190623%2F22%2F1561298984-bAuNFdmJok.jpg&refer=http%3A%2F%2Fimage.biaobaiju.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1613116329&t=434ac89dac1e857e907cd391720d3945",
"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fwww.wallcoo.com%2Fnature%2F2009_Landscape_1680_Desktop_03%2Fwallpapers%2F1680x1050%2FWild%2520Goose%2520Island%2520on%2520Saint%2520Mary%2520Lake%2520at%2520Sunrise%2520Glacier%2520National%2520Park%2520Montana.jpg&refer=http%3A%2F%2Fwww.wallcoo.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1613116329&t=77b1b665fbd7ebb89fca615ef87ef68d",
"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.pconline.com.cn%2Fimages%2Fupload%2Fupc%2Ftx%2Fphotoblog%2F1206%2F13%2Fc12%2F11988648_11988648_1339594072859.jpg&refer=http%3A%2F%2Fimg.pconline.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1613116329&t=f3c9bc53d5acb774cb2dccde74390d77"
};```markdown
```java
mMZBanner.addPageChangeListener(new PageSlider.PageChangedListener() {
@Override
public void onPageSliding(int i, float v, int i1) {
}
@Override
public void onPageSlideStateChanged(int i) {
}
@Override
public void onPageChosen(int i) {
}
});
List<String> normalBannerList = new ArrayList<>();
for (int i = 0; i < imagesMZ.length; i++) {
normalBannerList.add(imagesMZ[i]);
}
List<String> mzBannerList = new ArrayList<>();
for (int i = 0; i < imagesMZ.length; i++) {
mzBannerList.add(imagesMZ[i]);
}
mMZBanner.setIndicatorVisible(true);
// Изменение положения индикатора в коде
// mMZBanner.setIndicatorAlign(MZBannerView.IndicatorAlign.LEFT);
// mMZBanner.setIndicatorPadding(10, 0, 0, 150);
mMZBanner.setPages(mzBannerList, new MZHolderCreator<BannerViewHolder>() {
@Override
public BannerViewHolder createViewHolder() {
return new BannerViewHolder();
}
});
публичный статический класс BannerViewHolder реализует MZViewHolder<String> {
частное поле Image mImageView;
частное поле DisplayImageOptions options;
@Переопределение
публичный Component создатьВью(Context контекст) {
// Возвращает страницу с файлом макета
Component вью = LayoutScatter.getInstance(контекст).parse(ResourceTable.Layout_banner_item, null, false);
mImageView = (Image) вью.findComponentById(ResourceTable.Id_banner_image);
options = новый DisplayImageOptions.Builder()
.показатьИмейджПриЗагрузке(ResourceTable.Media_icon)
.показатьИмейжДляПустогоURI(ResourceTable.Media_icon)
.показатьИмейджПриНеудаче(ResourceTable.Media_icon)
.качествоВПамяти(истинно)
.качествоНаДиске(истинно)
.учитыватьEXIFПараметры(истинно)
.битмапКонфиг(PixelFormat.RGB_565)
.собрать();
вернуть вью;
}
}
```Примечание: В данном примере используется конструкция "частное поле" вместо прямого перевода ключевых слов Java, чтобы сохранить смысл оригинального кода. Также были адаптированы названия методов и свойств для лучшего понимания на русском языке.
```java
@Override
public void onBind(Context context, int position, String data) {
ImageLoader.getInstance().displayImage(data, mImageView, options, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, Component view, PixelMap loadedImage) {
super.onLoadingComplete(imageUri, view, loadedImage);
}
});
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
Авторское право © 2017 Zhou Wei
Распространяется в соответствии с лицензией Apache, версия 2.0 ("Лицензия"); вы можете использовать этот файл только в рамках данной Лицензии. Вы можете получить копию Лицензии по адресу:
<http://www.apache.org/licenses/LICENSE-2.0>
В случае отсутствия требований применимого закона или письменного соглашения, программное обеспечение распространяется на условиях "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, как явных, так и подразумеваемых. Смотрите Лицензию для конкретного языка, регламентирующего права и условия использования.
Подробнее см. Лицензию для получения информации о правах и ограничениях, предусмотренных Лицензией.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )