【发布时间】:2015-08-21 23:11:43
【问题描述】:
我注意到当我在 xml 中使用海拔属性并将其设置为 4dp 时,我得到了一个正常的阴影。当我在 java 中使用 setElevation(4) 时,我得到的阴影比 xml 属性少。我该如何解决?
【问题讨论】:
标签: android xml shadow android-elevation pixel-density
我注意到当我在 xml 中使用海拔属性并将其设置为 4dp 时,我得到了一个正常的阴影。当我在 java 中使用 setElevation(4) 时,我得到的阴影比 xml 属性少。我该如何解决?
【问题讨论】:
标签: android xml shadow android-elevation pixel-density
那是因为java使用像素。所以你必须把它转换成 dp
你可以用这个:
(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources().getDisplayMetrics())
【讨论】:
根据android documentationsetElevation()
设置此视图的基本标高,以像素为单位。
您需要将像素转换为dpi:
setElevation(4 / context.getResources().getDisplayMetrics().density);
【讨论】: