当您以编程方式指定值时LayoutParams
,这些值应为像素.
要在像素和dp之间进行转换,您必须乘以当前的密度因子.该值位于DisplayMetrics
,您可以从以下位置访问Context
:
float pixels = dp * context.getResources().getDisplayMetrics().density;
所以在你的情况下你可以这样做:
. . float factor = holder.itemView.getContext().getResources().getDisplayMetrics().density; params.width = (int)(item.getWidth() * factor); params.height = (int)(item.getHeight() * factor); . .