[Android]CircleList 圆弧形 ListView
16lz
2022-06-19
Displaying list items in a semi-circle with a nice fish eye effect
public void changeGroupFlag(Object obj) throws Exception { Field[] f = obj.getClass().getSuperclass().getSuperclass().getSuperclass().getDeclaredFields(); // 获得成员映射数组 for (Field tem : f) { if (tem.getName().equals("mGroupFlags")) { tem.setAccessible(true); Integer mGroupFlags = (Integer)tem.get(obj); int newGroupFlags = mGroupFlags & 0xfffff8; tem.set(obj, newGroupFlags); } } }
这个地方单独解释一下,反射修改了ListView的一个私有成员变量mGroupFlags,该成员变量 最后4位 对应 FLAG_CLIP_CHILDREN , FLAG_CLIP_TO_PADDING , FLAG_INVALIDATE_REQUIRED 和 FLAG_RUN_ANIMATION 0xfffff8 末尾对应 1000 对应以上4个状态 在该状态下,ViewGroup dispatchDraw的时候 不会调用canvas. clipRect 这样ChildView 可以不受bounds限制绘制在ViewGroup任意位置. 具体流程在ViewGroup源码 dispatchDraw部分
更多相关文章
- android 开发环境搭建
- application全局变量
- 安卓屏幕适配
- android 开发环境搭建
- Android(安卓)网络图片查看器
- android tabhost学习
- android使用全局变量的方法
- ffmepg x264 fdk-aac android ndk全CPU编译
- Android(安卓)自定义Dialog时出现成员变量为null的问题