指针的旋转动画
设置属性动画旋转
创建ObjectAnimator.offloat(); setduration()
//从暂停到播放状态动画
//从-25到0
playThumbAnimator = ObjectAnimator.ofFloat(binding.recordThumb, "rotation", THUMB_ROTATION_PAUSE, THUMB_ROTATION_PLAY);
//设置执行时间
playThumbAnimator.setDuration(THUMB_DURATION);
设置锚点
//黑胶唱片指针旋转点
//旋转点为15dp
//而设置需要单位为px
//所以要先转换
int rotate = (int) DensityUtil.dip2px(getContext(), 15);
binding.recordThumb.setPivotX(rotate);
binding.recordThumb.setPivotY(rotate);
图片像素转换
密度分类 | 密度范围(dpi) | 倍数(相对于 mdpi) | 资源目录 | 典型设备 |
---|---|---|---|---|
低(ldpi) | 120 以下 | 0.75x | drawable-ldpi/ | 旧版小屏设备(少用) |
基准(mdpi) | 120~160 | 1x(基准) | drawable-mdpi/ | 早期 Nexus 设备 |
中(hdpi) | 160~240 | 1.5x | drawable-hdpi/ | 早期中端手机 |
高(xhdpi) | 240~320 | 2x | drawable-xhdpi/ | 主流手机(如红米、荣耀) |
超高(xxhdpi) | 320~480 | 3x | drawable-xxhdpi/ | 高端手机(如 Pixel) |
超超高(xxxhdpi) | 480~640 | 4x | drawable-xxxhdpi/ | 大屏设备、折叠屏手机 |
现在目前手机都是用的是三倍图,原图像的单位为dp,dp转化为px要除以对应倍数
如指针图片是276*414单位是dp,
为三倍图,所以要除以3就是92*138
找到旋转点为15dp*15dp
再调用方法将dp转化为px
设计一个方法,计算手机缩放,dp*手机缩放就可以得到px
//获取手机的缩放
float scale = context.getResources().getDisplayMetrics().density;