1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/HarmonyOS-tpc-MZBannerView

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать

A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code.

Permissions
  • Commercial use
  • Modification
  • Distribution
  • Patent use
  • Private use
Limitations
  • Trademark use
  • Liability
  • Warranty
Conditions
  • License and copyright notice
  • State changes
readme.md 9.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 16.03.2025 02:46 35ceb6c

MZBannerView

Клон BannerView от Meizu, компонент для плавного прокручивания изображений. Поддерживает несколько режимов работы: использование ViewPager, обычный баннер и клон баннера от Meizu.

Описание

  • Поддержка локальных и сетевых изображений для плавной прокрутки
  • Недоступна реализация границ слайдера в стиле 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'

Требования для запуска entry

Через 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-MZBannerView.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-MZBannerView.git
oschina-mirror
HarmonyOS-tpc-MZBannerView
HarmonyOS-tpc-MZBannerView
master