想问一下,使用属性动画的时候,很多涉及到偏移距离或尺寸的属性怎么设置相似于dp这种单位,或像View动画那样可以设置百分比,而不是只能设置像素值,例如设置属性translationX, translationY这种,假如设置像素值,不同设备有问题,怎么设置成dp或parent、自身的百分比之类的?
解决方案
5
1.ANDROID可以获取屏幕密度,DP可以转成PX.
2.可以直接获取动画对应VIEW的属性(如高度),作为划入、滑出的位移。
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;
}
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;
}