banner4cj 特性文档
介绍
banner4cj 是一个banner库,常用于广告图片轮播场景。它是一个用仓颉语言编写的适用于鸿蒙系统的三方库。
1 基础信息类
public class BannerBean {
/*
* 设置颜色
*
* 参数 imageRes - 图片资源
* 参数 title - 标题
* 参数 viewType - 类型
*
* 返回值 Unit
*/
public init(imageRes: ?AppResource, title: String, viewType: Int64): Unit
}
public class IndicatorConfig {
/*
* 设置指示器大小
*
* 参数 indicatorSize - 指示器大小
*/
public func setIndicatorSize(indicatorSize: Int64):Unit
/*
* 获取指示器大小
*
* 返回值 Int64 - 指示器大小
*/
public func getIndicatorSize(): Int64
/*
* 设置颜色
*
* 参数 normalColor - 颜色
*/
public func setNormalColor(normalColor: Color):Unit
/*
* 获取颜色
*
* 返回值 Color - 颜色
*/
public func getNormalColor(): Color
/*
* 获取选中颜色
*
* 返回值 Color - 选中颜色
*/
public func getSelectedColor(): Color
/*
* 设置选中颜色
*
* 参数 selectedColor - 选中颜色
*/
public func setSelectedColor(selectedColor: Color): Unit
/*
* 获取指示器间隔大小
*
* 返回值 Float64 - 间隔大小
*/
public func getIndicatorSpace(): Float64
/*
* 设置指示器间隔大小
*
* 参数 indicatorSpace - 间隔大小
*/
public func setIndicatorSpace(indicatorSpace: Float64): Unit
/*
* 获取当前位置
*
* 返回值 Int32 - 当前位置
*/
public func getCurrentPosition(): Int32
/*
* 设置当前位置
*
* 参数 currentPosition - 当前位置
*/
public func setCurrentPosition(currentPosition: Int32): Unit
/*
* 获取所有指示器正常宽度
*
* 返回值 Float64 - 正常宽度
*/
public func getNormalWidth(): Float64
/*
* 设置所有指示器正常宽度
*
* 参数 normalWidth - 正常宽度
*/
public func setNormalWidth(normalWidth: Float64): Unit
/*
* 获取选中的指示器宽度
*
* 返回值 Float64 - 选中宽度
*/
public func getSelectedWidth(): Float64
/*
* 设置选中的指示器宽度
*
* 参数 normalWidth - 选中宽度
*/
public func setSelectedWidth(setSelectedWidth: Float64): Unit
/*
* 获取圆弧大小
*
* 返回值 Float64 - 圆弧大小
*/
public func getRadius(): Float64
/*
* 设置圆弧大小
*
* 参数 radius - 圆弧大小
*/
public func setRadius(radius: Float64): Unit
/*
* 获取高度
*
* 返回值 Float64 - 高度
*/
public func getHeight(): Float64
/*
* 设置高度
*
* 参数 height - 高度
*/
public func setHeight(height: Float64): Unit
/*
* 设置图片资源
*
* 参数 select - 图片资源
*/
public func setSelectPixelMap(select: ?PixelMap): Unit
/*
* 获取图片资源
*
* 返回值 ?PixelMap - 图片资源
*/
public func getSelectPixelMap(): ?PixelMap
/*
* 设置正常图片资源
*
* 参数 select - 正常图片资源
*/
public func setNormalPixelMap(select: ?PixelMap): Unit
/*
* 获取正常图片资源
*
* 返回值 ?PixelMap - 正常图片资源
*/
public func getNormalPixelMap(): ?PixelMap
banner的属性设置 优先BannerOptions设置 如果属性设置不一致 以BannerOptions的设置优先
public class BannerOptions {
/*
* Swiper 组件控制器对象,可用于控制组件翻页等行为
*/
var controller: SwiperController = SwiperController()
/*
* 自定播放
*/
var autoPlay: Bool = false
/*
* 当前item停滞时间
*/
var interval: UInt32 = 3000
/*
* 设置可选导航点指示器样式 默认关闭
*/
var indicator: SwiperIndicator = SwiperIndicator()
/*
* 是否开启循环
*/
var loop: Bool = true
/*
* 子组件切换动画时长
*/
var duration: UInt32 = 400
/*
* 是否纵向滑动
*/
var vertical: Bool = false
/*
* 动画曲率
*/
var curve: Curve = Curve.Linear
/*
* 是否禁止触摸
*/
var disableSwipe: Bool = false
/*
* 边界配置
*/
var bannerMargin: BannerMargin = BannerMargin(0.0, 0.0)
/*
* 动画配置
*/
var animatedConfig: ?AnimatedConfig = None
/*
* 动画效果
*/
var animatedEnum: AnimatedEnum = AnimatedEnum.NonePage
}
public class BannerMargin {
/*
* 配置边界距离-水平是左右的margin,垂直为上下的margin
*
* 参数 left - 水平情况下距离左边的距离 垂直情况下距离上部的距离
* 参数 right - 水平情况下距离右边的距离 垂直情况下距离下部的距离
*
* 返回值 Unit
*/
public init(left: Float64, right: Float64): Unit
}
public class AnimatedConfig {
/*
* 动画配置
*
* 参数 AlphaPage_minAlpha - 透明度
* 参数 DepthPage_minScale - 叠层
* 参数 MZScaleIn_minScale - 魅族效果 通常配合画廊
* 参数 RotateDownPage_maxRotate - 圆形旋转翻页 中心点在下方
* 参数 RotateUpPage_maxRotate - 圆形旋转翻页 中心点在上方
* 参数 RotateY_maxRotate - 3D旋转翻页 旋转轴Y
* 参数 ScaleIn_minScale - 缩放进入
* 参数 ZoomOutPage_minScale - 缩放到底的最小比例
* 参数 ZoomOutPage_minAlpha - 缩放到底的最小透明度比例
*
* 返回值 Unit
*/
public init(AlphaPage_minAlpha: UInt32, DepthPage_minScale: UInt32, MZScaleIn_minScale: Int64,
RotateDownPage_maxRotate: Int64, RotateUpPage_maxRotate: Int64, RotateY_maxRotate: Int64,
ScaleIn_minScale: Int64, ZoomOutPage_minScale: Int64, ZoomOutPage_minAlpha: Int64): Unit
}
2 组件类
public class Banner {
/*
* Banner整体配置
*/
var bannerOptions: BannerOptions
/*
* 用户数据
*/
var data: ObservedArrayList<BannerBean>
/*
* 轮播效果实现函数
*/
var bannerContent: (ObservedArrayList<BannerBean>, Int64) -> Unit
/*
* banner的起始位置
*/
var currentPosition: UInt32 = 0
/*
* swiper宽度
*/
var swiperWidth: Float64 = 0.0
/*
* swiper高度
*/
var swiperHeight: Float64 = 0.0
/*
* 当前页面的信息传递
*/
var transforms: Array<String> = Array<String>()
/*
* 是否可以响应触摸
*/
var canRespTouch: Bool = true
/*
* 父组件信息传递
*/
var swiperController: SwiperController = SwiperController()
/*
* 设置可选导航点指示器样式 默认关闭
*/
var indicator: SwiperIndicator = SwiperIndicator()
}
3 指示器
四种指示器
@Component
public class CircleIndicator {
/*
* 圆形指示器
*/
@Watch[watchIndicatorConfig]
@Link
var indicatorConfig: IndicatorConfig
}
@Component
public class RoundLinesIndicator {
/*
* RoundLines类型指示器
*/
@Watch[watchIndicatorConfig]
@Link
var indicatorConfig: IndicatorConfig
}
@Component
public class PixelMapIndicator {
/*
* 图片指示器
*/
@Watch[watchIndicatorConfig]
@Link
var indicatorConfig: IndicatorConfig
}
@Component
public class RectFIndicator {
/*
* 矩形指示器
*/
@Watch[watchIndicatorConfig]
@Link
var indicatorConfig: IndicatorConfig
}
4 通用类
默认banner配置
public class BannerConfig {
public static let IS_AUTO_LOOP: Bool = true
public static let LOOP_TIME: Int64 = 3000
public static let SCROLL_TIME: Int64 = 600
public static let INCREASE_COUNT: Int64 = 2
public static let INDICATOR_NORMAL_COLOR: Color = Color(0x88ffffff)
public static let INDICATOR_SELECTED_COLOR: Color = Color(0x88000000)
public static let INDICATOR_NORMAL_WIDTH: Float64 = 5.0
public static let INDICATOR_SELECTED_WIDTH: Float64 = 7.0
public static let INDICATOR_SPACE: Float64 = 5.0
public static let INDICATOR_MARGIN: Float64 = 5.0
public static let INDICATOR_HEIGHT: Float64 = 3.0
public static let INDICATOR_RADIUS: Float64 = 3.0
}
动画效果
public enum AnimatedEnum <: Equatable<AnimatedEnum> {
| NonePage // 无动画效果
| AlphaPage // alpha渐变
| DepthPage // 叠层
| MZScaleIn // 魅族效果 通常配合画廊
| RotateDownPage // 圆形旋转翻页 中心点在下方
| RotateUpPage // 圆形旋转翻页 中心点在上方
| RotateY // 3D旋转翻页 旋转轴Y
| ScaleIn // 缩放进入
| ZoomOutPage // 缩放alpha进入
/*
* 获取动画效果index
*
* 返回值 Int64 - 动画效果index
*/
public func value(): Int64 {
return match (this) {
case NonePage => 0
case AlphaPage => 1
case DepthPage => 2
case MZScaleIn => 3
case RotateDownPage => 4
case RotateUpPage => 5
case RotateY => 6
case ScaleIn => 7
case ZoomOutPage => 8
}
}
}