代码拉取完成,页面将自动刷新
Android RecyclerView阴影实现,基于AShadow2实现
在项目根节点的build.gradle中配置:
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
在需要引入的项目build.gradle中添加
implementation 'com.github.Mosect:ARecyclerShadow:1.0.1'
实现阴影显示的ItemDecoration,抽象类,需要实现getShadowKey方法,为Item提供一种阴影
继承于ShadowItemDecoration,如果整个RecyclerView的Item都使用一种阴影,可以使用此类对象为RecyclerView的Item显示阴影
// 创建阴影key
RoundShadow.Key shadowKey = new RoundShadow.Key();
shadowKey.solidColor = Color.parseColor("#ffffff");
shadowKey.shadowColor = Color.parseColor("#0d000000");
shadowKey.shadowRadius = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10,
getResources().getDisplayMetrics());
shadowKey.radii = new float[8];
float round = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10,
getResources().getDisplayMetrics());
Arrays.fill(shadowKey.radii, round);
// 创建item的阴影渲染器
SingleItemShadow itemShadow = new SingleItemShadow(shadowKey);
// 往RecyclerView添加渲染器
recyclerView.addItemDecoration(itemShadow);
实现跨Item实现阴影的ItemDecoration,仅支持LinearLayoutManager布局。可以往LinerRoundShadow添加多个块(Block),每块都代表一个阴影,添加代码如下:
// 创建块阴影渲染器
LinerRoundShadow shadow = new LinerRoundShadow();
// 产生块阴影
LinearRoundShadow.Block block = shadow.block();
// 设置块位置
block.setStart(start).setEnd(end);
// 产生阴影key
RoundShadow.Key key = new RoundShadow.Key();
// 阴影圆角
float round = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10,
getResources().getDisplayMetrics());
key.radii = new float[8];
Arrays.fill(key.radii, round);
// 阴影填充色
key.solidColor = Color.parseColor("#ffffff");
// 阴影半径
key.shadowRadius = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5,
getResources().getDisplayMetrics());
// 阴影颜色
key.shadowColor = Color.parseColor("#0d000000");
// 将阴影信息设置到块阴影信息中
block.setShadowKey(key);
// 往RecyclerView添加渲染器
recyclerView.addItemDecoration(shadow);
如果Adapter的数据发生更改,LinerRoundShadow中块信息也需要更新,此时可以调用LinerRoundShadow.clearBlock方法清空之后再添加合适的块。
QQ:905340954
邮箱:zhouliuyang1995@163.com
网站:http://www.mosect.com (建设中)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型