【android】getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别
使用java代码获取在xml中定义的尺寸:
- getDimension():基于当前DisplayMetrics进行转换,获取指定资源id对应的尺寸。函数的返回值是float。
- getDimensionPixelOffset():与getDimension()功能类似,不同的是将结果转换为int,并且小数部分四舍五入。
- getDimensionPixelSize():与getDimension()功能类似,不同的是将结果转换为int,并且直接截断小数位,即取整。
在类TypedArray和类Resource中都有这三个函数,功能类似,TypedArray中的函数是获取自定义属性的,Resource中的函数是获取android预置属性的
android:clipToPadding
该属性定义了ViewGroup是否将裁剪它的子View,和根据它的padding(如果padding不为0)调整任何边缘效果。默认值true。
关联方法:setClipToPadding(boolean)
意思是控件的绘制区域是否在padding里面
ListView顶部默认有一个顶部view,向上滑动后,覆盖顶部view显示:
android:indeterminate
不明确(false)就是滚动条的当前值自动在最小到最大值之间来回滚动,形成一个动画效果;
明确(true)就是根据你的进度可以设置现在的进度值。
Android中invalidate()函数
invalidate()是用来刷新View的,必须是在UI线程中进行工作。invalidate()的调用是把之前旧的view从主UI线程队列中pop掉。
请求重绘View树,即draw()过程,假如视图大小没有发生变化就不会调用layout()过程,并且只绘制那些“需要重绘的”视图,即谁(View的话,只绘制该View;ViewGroup,则绘制整个ViewGroup)请求invalidate()方法,就绘制该视图。
一般引起invalidate()操作的函数如下:
-
直接调用invalidate()方法,请求重新draw(),但只会绘制调用者本身。
-
setSelection()方法:请求重新draw(),但只会绘制调用者本身。
-
setVisibility()方法:当View可视状态在INVISIBLE转换VISIBLE时,会间接调用invalidate()方法,继而绘制该View。
-
setEnabled()方法:请求重新draw(),但不会重新绘制任何视图包括调用者本身。
java.time.Duration.ofHours()方法
java.time.Duration.ofHours(long hours)方法获取表示多少个标准小时数的持续时间。
以下示例显示了此方法的用法
import java.time.Duration; public class DurationDemo</