如何以编程方式(而非像素)以编程方式设置Android EditText视图的宽度

我正在基于指定数量的行和列在代码中动态生成EditText视图的网格.我希望每个EditText视图具有相同的宽度(例如,100dp).

虽然我可以使用setWidth或通过创建LayoutParam对象来设置视图的大小,但我似乎只能指定像素值.我想要使​​用DP(密度无关)单元,类似于我使用XML布局所做的.

如何在代码中完成?

最佳答案
我在Utils类中有一个方法来执行此转换:

public static int dip(Context context, int pixels) {
   float scale = context.getResources().getDisplayMetrics().density;
   return (int) (pixels * scale + 0.5f);
}

转载注明原文:如何以编程方式(而非像素)以编程方式设置Android EditText视图的宽度 - 代码日志