我有一个GridView,视情况而定,可能有3个或4个 列。列宽需要根据3或4来改变 正在展示。因此我无法将宽度硬编码到 布局XML包含GridView,它必须通过 setColumnWidth命令。
问题是setColumnWidth只能设置宽度(以像素为单位), 我想用dp指定宽度。我怎么能这样做,或者我必须这样做 创建2个布局,列宽在dp中硬编码到每个布局中?
由于
答案 0 :(得分:3)
您可以使用此代码将dp转换为px:
Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14, r.getDisplayMetrics());
但是,由于您将列数从3更改为4,反之亦然,因此列宽不会自行调整?