Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 一刀切的屏幕分辨率_Android_Size_Resolution - Fatal编程技术网

Android 一刀切的屏幕分辨率

Android 一刀切的屏幕分辨率,android,size,resolution,Android,Size,Resolution,我对安卓非常陌生。大概不到一个星期。我想把所有东西的大小都调整到,如果它占据一部手机屏幕的四分之一,我想让它占据所有手机屏幕的四分之一。我一直在玩我自己的方法,但我不喜欢它,必须有一个更好的方法。这就是我想到的 public int displayWidth(double ratioIn){ DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm)

我对安卓非常陌生。大概不到一个星期。我想把所有东西的大小都调整到,如果它占据一部手机屏幕的四分之一,我想让它占据所有手机屏幕的四分之一。我一直在玩我自己的方法,但我不喜欢它,必须有一个更好的方法。这就是我想到的

public int displayWidth(double ratioIn){
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    double resolutionWidth = dm.widthPixels; //gets the width in pixels
    double ratio = (resolutionWidth/100); //devides by 100 so that ratio will be in terms of %
    int displayWidth = (int)(ratio*ratioIn); 
    return displayWidth;
}

问题是精度下降(虽然我已经尝试了480分辨率,几乎完美)。有更好的方法吗?我试过使用dp。它有时很接近,但不够接近。

如果可以在XML中这样做,则可以使用带有属性的LinearLayouts。如果你想让你的项目占据屏幕的3/4,只需给它3的权重,然后添加一个权重为1的空视图。但是请注意,这是性能密集型的。

您可以在问题中添加一些更有用的标记。比如安卓。编辑:我不是android专家,但有没有类似于javas布局管理器的东西?或者你不使用一些xml来定义你的GUI吗?我的错,我想我是在安卓部分问的。我使用xml来定义GUI。我是android新手,但这和reg java编程的区别在于,在一台计算机上只有这么多的显示模式。手机似乎有更多的功能,我还应该提到我是XML新手。我不知道重量和重力。我一直在玩它,但它只占了我宽度的一半,而不是身高的一半。假设我想让它在屏幕宽度的一半处画一个按钮,这个方法不会这样做。这就是我所拥有的。是这样吗?``看起来应该是这样的: