我制作了一个标尺应用程序,我希望我的一个视图在任何屏幕上的宽度都是1.7英寸,无论使用该应用程序的各个设备的dpi如何。我知道如何在像素和dp之间进行转换以及如何以编程方式设置视图的布局参数,但我不确定如何确定每个屏幕密度需要多少dp以确保始终使用宽度为1.7英寸。
除非我弄错了,一旦我理解了这种转换,我应该可以使用这样的调用来设置它:
RelativeLayout.LayoutParams viewParams = new RelativeLayout.LayoutParams( **width in dp converted from inches**, RelativeLayout.LayoutParams.MATCH_PARENT);
答案 0 :(得分:1)
我会建议:
public int pixelsOfWantedInches(double inches, Activity act) {
DisplayMetrics dm = new DisplayMetrics();
act.getWindowManager().getDefaultDisplay().getMetrics(dm);
int dens=dm.densityDpi;
int pixels = (int)(inches * (double) dens);
return pixels;
}
int wantedPixels = pixelsOfWantedInches(1.7, this);