鸿蒙开源组件——幻灯片效果小型库
头像 Q 2022-03-01 17:16:41    发布
1264 浏览 30 点赞 20 收藏


该三方开源库从github fork过来,主要将底层接口调用的实现修改成鸿蒙接口的实现,将三方库鸿蒙化,供开发鸿蒙应用的开发者使用

fork版本号/日期:2.2.8 / 2017/12/5

SlideUp-Harmony

SlideUp是一个小型库,可让您向任何视图添加甜美的幻灯片效果。使用SlideUp向上,向下,向左或向右滑动视图!

项目移植状态:支持组件所有基本功能

完成度:100%

调用差异:无

导入方法

1.har导入


implementation fileTree(dir: 'libs', include: ['*.har'])

2.Library引用

添加本工程中UcropLib模块到任意工程中,在需要使用的模块build.gradle中添加


implementation project(':library')

or


allprojects{
    repositories{
        mavenCentral()
    }
}
implementation 'io.openharmony.tpc.thirdlib:SlideUp-ohos:1.0.1'

使用方法 1 .在布局文件中添加以下代码


<DependentLayout
            ohos:id="$+id:rootView"
            ohos:height="match_parent"
            ohos:width="match_parent"
            ohos:left_padding="16vp"
            ohos:right_padding="16vp"
            ohos:top_padding="16vp"
    >

        <DependentLayout
                ohos:id="$+id:slideView"
                ohos:height="match_parent"
                ohos:width="match_parent"
                ohos:background_element="$graphic:rounded_up_corners_bg"
                ohos:top_margin="26vp">

            <Image
                    ohos:id="$+id:imageView2"
                    ohos:height="match_parent"
                    ohos:width="match_parent"
                    ohos:image_src="$media:mushroom"
                    ohos:top_margin="24vp"/>

            <Image
                    ohos:id="$+id:imageView"
                    ohos:height="match_content"
                    ohos:width="match_content"
                    ohos:below="$id:textView"
                    ohos:horizontal_center="true"
                    ohos:image_src="$graphic:ic_keyboard_arrow_down_black_24dp"
                    ohos:top_margin="4vp"/>

            <Text
                    ohos:id="$+id:textView"
                    ohos:height="match_content"
                    ohos:width="match_parent"
                    ohos:align_parent_top="true"
                    ohos:text="Slide it down"
                    ohos:text_alignment="horizontal_center"
                    ohos:text_color="#cecece"
                    ohos:top_margin="16vp"/>

        </DependentLayout>


    </DependentLayout>
    

2.在代码中初始化参数


//初始化
sliderView = findComponentById(ResourceTable.Id_slideView);
//新建并初始化SlideUpBuilder
slideUp = new SlideUpBuilder(sliderView)
.withListeners(new SlideUp.Listener.Events() {
    @Override
    public void onSlide(float percent) {
        dim.setAlpha(1 - (percent / 100));
        if (fab.isComponentDisplayed() && percent < 100) {
            fab.setVisibility(Component.HIDE);
        }
    }

    @Override
    public void onVisibilityChanged(int visibility) {
        if (visibility == Component.HIDE) {
            fab.setVisibility(Component.VISIBLE);
        }
    }
})
//视图的位置
.withStartGravity(Gravity.BOTTOM)
//是否打印log
.withLoggingEnabled(true)
//是否可以手势
.withGesturesEnabled(true)
//视图开始的状态
.withStartState(SlideUp.State.HIDDEN)
//视图的父视图
.withSlideFromOtherView(findComponentById(ResourceTable.Id_rootView))
//创建
.build();

3.一些功能设置介绍


//以view为参数初始化SlideUpBuilder
SlideUpBuilder slideUpBuilder = new SlideUpBuilder();
//设置是动画的时间
slideUpBuilder.withAutoSlideDuration();
//设置是否可以滑动
slideUpBuilder.withGesturesEnabled();
//设置
slideUpBuilder.withHideSoftInputWhenDisplayed();
//设置动画的差值器
slideUpBuilder.withInterpolator();
//设置监听
slideUpBuilder.withListeners();
//设置是否可以打印log
slideUpBuilder.withLoggingEnabled();
-
//设置可以触摸的距离长度px
slideUpBuilder.withTouchableAreaPx();
//设置父布局
slideUpBuilder.withSlideFromOtherView();
//设置视图开始的位置
slideUpBuilder.withStartGravity();
//设置可以触摸的距离长度dp
slideUpBuilder.withTouchableAreaDp();
//设置开始的状态
slideUpBuilder.withStartState();

//设置监听
slideUp.addSlideListener();
//设置动画的时长
slideUp.getAutoSlideDuration();
//设置动画差值器
slideUp.getInterpolator();
//获取滑动的视图
slideUp.getSliderView();
//获取视图的位置
slideUp.getStartGravity();
//获取滑动触发的距离长度dp
slideUp.getTouchableAreaDp();
//获取滑动触发的距离长度px
slideUp.getTouchableAreaPx();
//隐藏视图无动画效果
slideUp.hide();
//是否立即隐藏视图或有动画效果隐藏视图
slideUp.hideImmediately();
//显示视图无动画效果
slideUp.show();
//显示视图并设置是否有动画效果
slideUp.showImmediately();
//是否在运行动画
slideUp.isAnimationRunning();
//获取是否可以触摸操作
slideUp.isGesturesEnabled();
//设置是否打印log
slideUp.isLoggingEnabled();
//视图是否显示
slideUp.isVisible();
//通知参数变化
slideUp.notifyPercentChanged();
//通知视图可见状态变化
slideUp.notifyVisibilityChanged();
//移除监听
slideUp.removeSlideListener();

//设置动画的时间
slideUp.setAutoSlideDuration();
//设置是否可以触摸操作
slideUp.setGesturesEnabled();
//设置动画差值器
slideUp.setInterpolator();
//设置是否打印log
slideUp.setLoggingEnabled();
//获取滑动触发的距离长度dp
slideUp.setTouchableAreaDp();
//获取滑动触发的距离长度px
slideUp.setTouchableAreaPx();



©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它
头像

Q

我还没有写个人简介......

85

帖子

0

提问

245

粉丝

关注
最新发布
热门推荐
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除

京ICP备:2022009079号-2

京公网安备:11010502051901号

ICP证:京B2-20230255