Android开发中的小积累
来源:互联网 发布:foxmail邮件导入到mac 编辑:程序博客网 时间:2024/06/05 08:24
- 获取Recycleview当前屏幕可见item,并且拿到任何一个可见item的view
int lastItemPosition=0;int firstItemPosition = 0;RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();//判断是当前layoutManager是否为LinearLayoutManager//只有LinearLayoutManager才有查找第一个和最后一个可见view位置的方法if (layoutManager instanceof LinearLayoutManager) { LinearLayoutManager linearManager = (LinearLayoutManager) layoutManager;//获取最后一个可见view的位置lastItemPosition = linearManager.findLastVisibleItemPosition();//获取第一个可见view的位置firstItemPosition = linearManager.findFirstVisibleItemPosition(); }//获取可见的任何item,记得要减掉firstItemPosition,因为item复用的问题,这个往往容易忽略,从而导致获取的view为空 View view=recyclerView.getChildAt(i-firstItemPosition);
- 获取view在屏幕中的位置
//这个方法是返回view在Y轴的位置,包括状态栏/标题栏等,是该view在整个屏幕中的位置private int getY(View flagView) { int[] location = new int[2]; flagView.getLocationOnScreen(location); int x = location[0]; int y =location[1]; return y; }
- 获取状态栏的高度
private int getStatusHeight() { int statusBarHeight1 = -1; int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { statusBarHeight1 = getResources().getDimensionPixelSize(resourceId); } return statusBarHeight1; }
- .Java 中的精确运算:BigDecimal
例如:System.out.println(0.06+0.01);
输入结果是:0.06999999999999999, 而不是我们想要的0.7
原因在于我们的计算机是二进制的。浮点数没有办法是用二进制进行精确表示。我们的CPU表示浮点数由两个部分组成:指数和尾数,这样的表示方法一般都会失去一定的精确度,有些浮点数运算也会产生一定的误差。如:2.4的二进制表示并非就是精确的2.4。反而最为接近的二进制表示是 2.3999999999999999。所以要用BigDecimal,以下是实例代码,两个数相乘:
public static double mul(String value1, String value2) { BigDecimal b1 = new BigDecimal(value1); BigDecimal b2 = new BigDecimal(value2); return b1.multiply(b2).doubleValue(); }
使用BigDecimal,但一定要用BigDecimal(String)构造器,而千万不要用
BigDecimal(double)来构造(也不能将float或double型转换成String再来使用BigDecimal(String)
来构造,因为在将float或double转换成String时精度已丢失)
阅读全文
0 0
- Android开发中的小积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的各种积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- Android 开发中的日常积累
- mac 下使用 iTerm 终端工具无法使用 alt+b 和 alt+f 快捷键的解决方法
- 那些我在Android开发中所喜爱的Kotlin特性
- 简单的算法题,包括1.打印100——200之间的的素数2.输出乘法口诀表3.判断1000年——2000年之间的闰年,给出完整代码
- MainActivity
- Oracle 基本操作
- Android开发中的小积累
- 高校机器人课程(ROS)教学的思、辨、行
- ueditor ie8兼容性问题
- Fragment
- Android 按Home键退出,在点击桌面图标进入不显示之前退出的Activity
- java中的方法详解
- css中使得border渐变方法
- nmt初探
- 生活小记14