36f4f100创建于 2024年8月30日历史提交

视图闪烁效果库

介绍

基于cangjie的闪烁效果库,可以给UI视图添加从上到下、从左到右等不同方向的闪烁效果

1 Shimmer控制器

/**
 * 闪烁控制类
 */
public class Shimmer {
    /**
     * 设置闪烁运动的方向
     *
     * @param direction 运动方向
     *
     * @return Shimmer 修改了闪光运动方向的控制器对象
     */
    public func setDirection(direction: ShimmerDirections): Shimmer 

    /**
     * 设置闪光的形状
     *
     * @param shape 闪光形状
     *
     * @return Shimmer 修改了闪光形状的控制器对象
     */
    public func setShape(shape: ShimmerShapes): Shimmer

    /**
     * 设置闪光的宽度
     *
     * @param fixedWidth 宽度
     *
     * @return Shimmer 修改了闪光宽度的控制器对象
     *
     * @exception IllegalArgumentException 入参为负数时抛出
     */
    public func setFixedWidth(fixedWidth: Float64): Shimmer 

    /**
     * 设置闪光的强度,值越大,闪烁越大,生效范围 0-1
     *
     * @param intensity 强度值
     *
     * @return Shimmer 修改了闪光强度值的控制器对象
     *
     * @exception IllegalArgumentException 入参为负数时抛出    
     */
    public func setIntensity(intensity: Float64): Shimmer 

    /**
     * 设置微光渐变下降的速度,值越大,下降越明显,生效范围 0-1
     *
     * @param dropOffset 渐变下降的速度
     *
     * @return Shimmer 修改了闪光渐变下降的速度的控制器对象
     *
     * @exception IllegalArgumentException 入参为负数时抛出    
     */
    public func setDropOffset(dropOffset: Float64): Shimmer 

    /**
     * 设置闪光的倾斜角度,生效范围 0-360
     *
     * @param tilt 倾斜角度
     *
     * @return Shimmer 修改了闪光倾斜角度的控制器对象
     */
    public func setTilt(tilt: Int64): Shimmer 

    /**
     * 设置高光颜色和背景颜色
     *
     * @param highlight 高光颜色
     * @param background 背景颜色
     *
     * @return Shimmer 修改了颜色的控制器对象
     */
    public func setShimmerColor(highlight: Color, background: Color): Shimmer
    
    /**
     * 设置闪光的循环次数
     *
     * @param repeatCount 循环次数 -1表示一直循环
     *
     * @return Shimmer 修改了闪光循环次数的控制器对象
     */
    public func setRepeatCount(repeatCount: Int64): Shimmer 

    /**
     * 设置闪光的播放模式
     * PlayMode.Reverse 折返播放
     * PlayMode.Normal、PlayMode.Alternate、PlayMode.AlternateReverse 都为同一方向循环播放
     *
     * @param mode 播放模式
     *
     * @return Shimmer 修改了闪光播放模式的控制器对象
     */
    public func setRepeatMode(mode: PlayMode): Shimmer 

    /**
     * 设置闪光完整播放一次的限制时间
     *
     * @param millis 完整播放一次的限制时间
     *
     * @return Shimmer 修改了闪光完整播放一次的限制时间的控制器对象
     */
    public func setDuration(millis: Int64): Shimmer 

    /**
     * 开启和关闭闪烁效果
     *
     * @param state 开启和关闭 true表示开启 false表示关闭
     *
     * @return Shimmer 修改了闪光开启和关闭状态的控制器对象
     */
    public func showShimmer(state: Bool): Shimmer 

    /**
     * 获取当前闪烁状态
     *
     * @return Bool 当前闪烁状态 true表示开启 false表示关闭
     */
    public func getShimmerState(): Bool 
}

2 形状和方向枚举类

/**
 * 闪光运行方向枚举类
 */
public enum ShimmerDirections {
	| LEFT_TO_RIGHT  // 从左到右
    | TOP_TO_BOTTOM  // 从右到左
    | RIGHT_TO_LEFT  // 从上到下
    | BOTTOM_TO_TOP  // 从下到上

    /**
     * 获取枚举对应的数值
     *
     * @return Int64 对应的数值
     */
    public func getInt(): Int64 
    
    /**
     * 比较方法覆写
     *
     * @param right 另一个要匹配的ShimmerDirections对象
     *
     * @return Bool 当前枚举是否和入参的值相同 true表示相同 false表示不同
     */
    public operator func ==(right: ShimmerDirections): Bool
}


/**
 * 闪光形状枚举类
 */
public enum ShimmerShapes {
	| LINEAR // 条形
    | RADIAL // 圆形

    /**
     * 获取枚举对应的数值
     *
     * @return Int64 对应的数值
     */
    public func getInt(): Int64 

    /**
     * 比较方法覆写
     *
     * @param right 另一个要匹配的ShimmerShapes对象
     *
     * @return Bool 当前枚举是否和入参的值相同 true表示相同 false表示不同
     */
    public operator func ==(right: ShimmerShapes): Bool 
}

3 ShimmerElement自定义组件

/**
 * 自定义组件构造器
 *
 * @参数 mShimmer 控制器
 * @参数 content 要添加闪光效果的组件,需以@Builder标签修饰
 */
ShimmerElement(mShimmer: mShimmer, content: testComponent)