【发布时间】:2011-09-03 18:43:54
【问题描述】:
我有一个 GridView,根据具体情况,它可能有 3 个或 4 个 列。列宽需要根据 3 还是 4 改变 正在显示。因此,我无法将宽度硬编码到 包含 GridView 的布局 XML,必须通过 setColumnWidth 命令。
问题是setColumnWidth只能设置像素宽度, 我想在 dp 中指定宽度。我该怎么做,或者我必须 创建2个布局,将列宽硬编码到dp中的每个布局中?
谢谢
【问题讨论】:
我有一个 GridView,根据具体情况,它可能有 3 个或 4 个 列。列宽需要根据 3 还是 4 改变 正在显示。因此,我无法将宽度硬编码到 包含 GridView 的布局 XML,必须通过 setColumnWidth 命令。
问题是setColumnWidth只能设置像素宽度, 我想在 dp 中指定宽度。我该怎么做,或者我必须 创建2个布局,将列宽硬编码到dp中的每个布局中?
谢谢
【问题讨论】:
您可以使用此代码将 dp 转换为 px:
Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14, r.getDisplayMetrics());
但是由于你将列数从 3 更改为 4,反之亦然,所以列宽不会自行调整?
【讨论】: