Android:以英寸为单位设置View的宽度(在英寸和dp之间转换)

时间:2016-10-22 16:02:10

标签: java android android-layout

我制作了一个标尺应用程序,我希望我的一个视图在任何屏幕上的宽度都是1.7英寸,无论使用该应用程序的各个设备的dpi如何。我知道如何在像素和dp之间进行转换以及如何以编程方式设置视图的布局参数,但我不确定如何确定每个屏幕密度需要多少dp以确保始终使用宽度为1.7英寸。

除非我弄错了,一旦我理解了这种转换,我应该可以使用这样的调用来设置它:

RelativeLayout.LayoutParams viewParams = new RelativeLayout.LayoutParams( **width in dp converted from inches**, RelativeLayout.LayoutParams.MATCH_PARENT);

1 个答案:

答案 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);