众所周知,ShimmerFrameLayout是com.facebook.shimmer:shimmer:0.5.0框架里的一个组件,他的目的是用于组件带有闪烁灯光的效果。
他的用法如下:
<com.facebook.shimmer.ShimmerFrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:shimmer_auto_start="true">
<ImageView
android:layout_width="@dimen/dp_20"
android:layout_height="@dimen/dp_20"
android:scaleType="fitXY"
android:src="@drawable/ic_me_taskcenter" />
</com.facebook.shimmer.ShimmerFrameLayout>
我可以直接在xml里直接调用app:shimmer_auto_start="true"直接启动,也可以代码启动,前提要获取到ShimmerFrameLayout的id。
ShimmerFrameLayout container =
(ShimmerFrameLayout) findViewById(R.id.shimmer_view_container);
container.startShimmer(); // If auto-start is set to false
但是我更倾向于用xml里的app直接启动,因为方便。我把所有app的参数用法举例如下:
shimmer_clip_to_children
(boolean): 指定是否将Shimmer动画裁剪到子视图的边界内。shimmer_colored
(boolean): 指定是否使用彩色的Shimmer效果。shimmer_base_color
(color): 设置Shimmer的基础颜色。shimmer_highlight_color
(color): 设置Shimmer的高亮颜色。shimmer_base_alpha
(float): 设置Shimmer的基础透明度。shimmer_highlight_alpha
(float): 设置Shimmer的高亮透明度。shimmer_auto_start
(boolean): 指定是否在布局加载完成后自动开始播放Shimmer动画。shimmer_duration
(integer): 设置Shimmer动画的持续时间(毫秒)。shimmer_repeat_count
(integer): 设置Shimmer动画的重复次数。shimmer_repeat_delay
(integer): 设置Shimmer动画重复播放之间的延迟时间(毫秒)。shimmer_repeat_mode
(enum): 设置Shimmer动画的重复模式,可选值为"restart"(重新开始)和"reverse"(反向)。shimmer_direction
(enum): 设置Shimmer动画的方向,可选值为"left_to_right"(从左到右)、"top_to_bottom"(从上到下)、"right_to_left"(从右到左)和"bottom_to_top"(从下到上)。shimmer_dropoff
(float): 设置Shimmer动画的衰减量。shimmer_fixed_width
(dimension): 设置Shimmer动画的固定宽度。shimmer_fixed_height
(dimension): 设置Shimmer动画的固定高度。shimmer_intensity
(float): 设置Shimmer动画的强度。shimmer_width_ratio
(float): 设置Shimmer动画宽度相对于视图宽度的比例。shimmer_height_ratio
(float): 设置Shimmer动画高度相对于视图高度的比例。shimmer_shape
(enum): 设置Shimmer动画的形状,可选值为"linear"(线性)和"radial"(径向)。shimmer_tilt
(float): 设置Shimmer动画的倾斜角度。
这些参数可以根据你的需求来调整ShimmerFrameLayout的外观和行为。