热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在AndroidStudio中将不同的视图缩放到所有屏幕大小?

如何在 Android Studio 中将不同的视图缩放到所有屏幕大小?原文:https://www . geeksforgee

如何在 Android Studio 中将不同的视图缩放到所有屏幕大小?

原文:https://www . geeksforgeeks . org/如何在安卓工作室中将不同视图缩放到所有屏幕尺寸/

本文展示了如何在安卓应用程序开发中更改视图的大小(如文本视图等),以便他们可以修改屏幕上显示的内容。

注:本文用 XML 可视化工具代替安卓工作室。

以下是在安卓系统中改变视图大小的各种方法:


  1. Hard-coding the values in dp (density pixel): We know that pixels are a unit of measure for an image or any object that appears on a computer screen. But if we specify the size of a View in pixels, there’s a very big problem which will arise since every device has a different pixel screen ratio. The more the number of pixel a device has, the more crisper and better quality images can be seen.

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

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

    既然我们知道了使用密度像素胜过像素的优势,让我们来看看这样做的代码:

    java
        android:text="You are in GeeksforGeeks!"
        android:background="#66bb6a"
        android:layout_
        android:layout_ />

    注意:要运行此代码,请从 XML 可视化工具中删除之前编写的任何代码,并粘贴上述代码。

    输出:

    我们在一个绿色的大矩形里看到一个非常小的字。长方形是我们规定的尺寸: 450dp*250dp 。从代码中可以明显看出,在指定视图的大小时(在上面的例子中是一个文本视图),我们需要设置两个参数的值:高度和宽度。如果它们中的任何一个不存在,代码就不会运行。


  2. Using wrap_content: Generally, hard-coding the values in dp isn’t a good practice. Take the above output as an example: our text is quite tiny but we are using a gigantic green box to enclose it. Not only it looks weird but it also takes a lot of unnecessary space. Also, many times we don’t know how much content will there be in the view; say user-input, if it’s a long input then the size which we specified in dp might be small to hold the content thus cutting it off and if the input is very small, there will be a lot of space left inside the specified view thus resulting in poor design.

    java
        android:text="This is a very very large input in a very very small view size!"
        android:background="#ffff00"
        android:layout_
        android:layout_ />

    输出:

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

    java
        android:text="This is a very very large input in a view size which will grow accordingly!"
        android:background="#42a5f5"
        android:layout_
        android:layout_ />

    输出:

    然而,当我们处理多个视图时,还有一种方法会派上用场。


  3. Using match_parent: When we have more than one view on the screen, we use layouts to arrange the views. The layout which we use is also a view and is known as parent view and all the views which it contains are known as child views.

    在指定布局的同时,我们还需要像指定任何其他视图一样指定它的大小。我们可以通过对 dp 中的值进行硬编码或使用wrap_content来做到这一点。然而,使用wrap_content进行布局可能会使设计不佳,因为它有时会使孩子的视图比预期的更小或更大。

    如果我们想要布局尺寸与设备尺寸相匹配,我们需要使用match_parent。它不仅可以用于布局,也就是父视图,还可以用于子视图。如果我们将它用于子视图,它将是父视图的大小。

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

    ```java
    LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_
        android:layout_
        android:background="@android:color/darker_gray"

    ImageView
            android:src="@drawable/rainbow"
            android:layout_
            android:layout_/
    ```

    现在布局将延伸到整个显示屏。这里,我们在布局中使用了“深灰色”,这样我们就可以看到它覆盖了整个设备。如果没有指定颜色,布局将不可见。

    输出:

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

    java
            android:src="@drawable/rainbow"
            android:layout_
            android:layout_
            android:scaleType="centerCrop"/>

    输出:



推荐阅读
  • 在最近的一系列文章,对midipadAPP,有一个关于一个radialgradiant渲染每个padview利用的探讨,对审美的原因&#x ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • 2021年最详细的Android屏幕适配方案汇总
    1Android屏幕适配的度量单位和相关概念建议在阅读本文章之前,可以先阅读快乐李同学写的文章《Android屏幕适配的度量单位和相关概念》,这篇文章 ... [详细]
  • 这两天用到了ListView,写下遇到的一些问题。首先是ListView本身与子控件的焦点问题,比如我这里子控件用到了Button,在需要ListView中的根布局属性上加上下面的这一个属性:and ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • 导读执行UPDATE时,WEHRE条件列虽已有索引,但还会锁全表,肿么回事?问题描述叶师傅有次上课过程中执行UPDATE测试案例时,发现虽然WHERE条件列已有索 ... [详细]
  • Apple iPad:过渡设备还是平板电脑?
    I’vebeenagonizingoverwhethertopostaniPadarticle.Applecertainlydon’tneedmorepublicityandthe ... [详细]
  • 1.{#if}{#if|COND|}..{#elseif|COND|}..{#else}..{#if}Examples:{#if2*816}good{#else}fa ... [详细]
author-avatar
灰色头像6888
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有