我遇到了需要以编程方式将 TextView 的宽度设置为 50 的情况。我需要将此 50 转换为 dp,因为我没有找到任何以编程方式将宽度设置为 dp 的规定。谁能帮我在Android中如何将像素转换为dps。
提前致谢。
我遇到了需要以编程方式将 TextView 的宽度设置为 50 的情况。我需要将此 50 转换为 dp,因为我没有找到任何以编程方式将宽度设置为 dp 的规定。谁能帮我在Android中如何将像素转换为dps。
提前致谢。
这是我很久以前写的几个实用方法,它们似乎经常派上用场:
/**
* Converts pixel to dip.
*
* @param pixel
* that should be converted.
* @return the converted rounded dip.
*/
private int pixelToDip(int pixel) {
DisplayMetrics displayMetrics = mContext.getResources()
.getDisplayMetrics();
return (int) ((pixel / displayMetrics.density) + 0.5);
}
/**
* Converts dip to pixel.
*
* @param dip
* that should be converted.
* @return the converted rounded pixel.
*/
private int dipToPixel(int dip) {
DisplayMetrics displayMetrics = mContext.getResources()
.getDisplayMetrics();
return (int) ((dip * displayMetrics.density) + 0.5);
}
您要么必须在 Context 的子类中运行它,要么让它从某个地方获取 Context。我在我的 Utility 类构造函数中传入一个 Context 并将其存储在mContext
.