📌  相关文章
📜  如何在Android Studio中将不同的视图缩放到所有屏幕尺寸?

📅  最后修改于: 2021-05-13 16:12:51             🧑  作者: Mango

本文介绍了如何在Android App Development中更改View的大小(如TextView等),以便他们可以修改屏幕上显示的内容。

注意:对于本文,请使用XML可视化工具,而不是Android Studio。

以下是在Android中更改视图大小的各种方法:

  1. 用dp(密度像素)对值进行硬编码:我们知道像素是图像或计算机屏幕上出现的任何对象的度量单位。但是,如果我们以像素为单位指定View的大小,则会出现一个很大的问题,因为每个设备的像素屏幕比例都不同。设备具有的像素数越多,可以看到的图像就越清晰和质量更好。

    例如,如果我们将视图指定为4像素* 4像素,则可能会根据所涉及的设备以不同大小显示该视图。

    我们可以通过以密度像素(dp)而不是像素指定视图来克服此问题。在dp中指定时,设备本身会调整视图,以使该视图占据预期的空间。

    既然我们知道在像素上使用密度像素的优势,那么让我们看一下这样做的代码:

    
    

    注意:要运行此代码,请从XML Visualizer中删除所有以前编写的代码,然后粘贴上面的代码。

    输出:

    我们在一个大的绿色矩形中看到了一个很小的文字。矩形是我们指定的大小: 450dp * 250dp 。从代码中可以明显看出,在指定视图大小时(在上面的示例中是textView),我们需要为两个参数设置值:height和width。如果其中任何一个都不存在,则该代码将不会运行。

  2. 使用wrap_content:通常,对dp中的值进行硬编码不是一个好习惯。以上面的输出为例:我们的文本很小,但是我们使用一个巨大的绿色框将其围起来。它不仅看起来很奇怪,而且还占用了很多不必要的空间。同样,很多时候我们都不知道视图中将包含多少内容。说用户输入,如果输入很长,那么我们在dp中指定的大小可能很小,无法容纳内容,因此将其截断;如果输入很小,则指定视图内将留有很多空间,因此导致设计不佳。
    
    

    输出:

    为了解决这个问题,我们使用wrap_content函数。它使视图的大小受限于其涵盖的内容。因此,视图的大小将随着其覆盖的内容的增长或缩小而增长和缩小。让我们看一下它的代码:

    
    

    输出:

    但是,当我们处理多个视图时,还有另一种方法很方便。

  3. 使用match_parent:当屏幕上有多个视图时,我们使用布局来排列视图。我们使用的布局也是一个视图,称为父视图,它包含的所有视图都称为子视图

    在指定布局时,我们还需要像其他任何视图一样指定其大小。我们可以通过对dp中的值进行硬编码或使用wrap_content 。但是,对布局使用wrap_content可能会使设计变差,因为有时可能会使子视图变小或变大。

    如果我们希望布局大小与设备的大小匹配,则需要使用match_parent 。它不仅可以用于布局(也称为父视图),还可以用于子视图。如果我们将其用于子视图,它将是父视图的大小。

    下面是显示上述方法的代码:

    
          
        
    
    

    现在,布局将扩展到整个显示器。在这里,我们将颜色“ darker_gray”用于布局,以便我们可以看到它覆盖了整个设备。如果未指定颜色,则布局将不可见。

    输出:

    如果我们在图像视图上使用match_parent,它将占用整个设备显示屏的大小,从而创建一个全出血图像:

    
    

    输出: