使用属性动画时, translationX, translationY等属性怎么设置dp值而不是像素值

Android 码拜 8年前 (2016-05-02) 2041次浏览
想问一下,使用属性动画的时候,很多涉及到偏移距离或尺寸的属性怎么设置相似于dp这种单位,或像View动画那样可以设置百分比,而不是只能设置像素值,例如设置属性translationX, translationY这种,假如设置像素值,不同设备有问题,怎么设置成dp或parent、自身的百分比之类的?
解决方案

5

1.ANDROID可以获取屏幕密度,DP可以转成PX.
2.可以直接获取动画对应VIEW的属性(如高度),作为划入、滑出的位移。

15

public static int dp2px(Context context, float dipValue) {
if (context != null) {
if ((float) LayoutParams.FILL_PARENT == dipValue) {
return LayoutParams.FILL_PARENT;
}
if ((float) LayoutParams.WRAP_CONTENT == dipValue) {
return LayoutParams.WRAP_CONTENT;
}
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
return (int) dipValue;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用属性动画时, translationX, translationY等属性怎么设置dp值而不是像素值
喜欢 (0)
[1034331897@qq.com]
分享 (0)