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

OSCHINA-MIRROR/HarmonyOS-tpc-MZBannerView

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
readme.md

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 )

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

Введение

Описание недоступно Развернуть Свернуть
Apache-2.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