Android:更改设备设置时的布局尺寸问题

Android:更改设备设置时的布局尺寸问题,第1张

概述我目前在尺寸更改方面遇到麻烦.我已经使用dp对xml文件进行了编码,但是当我更改设备屏幕尺寸时,布局也会改变.例如,当我进入“设置”“显示”“屏幕缩放和字体”并将屏幕缩放从“中”设置为“大”时,布局中的某些元素(例如imageview或button)将增长并超出屏幕.由于我使用的是包含

我目前在尺寸更改方面遇到麻烦.

我已经使用dp对xml文件进行了编码,但是当我更改设备屏幕尺寸时,布局也会改变.

例如,当我进入“设置”“显示”“屏幕缩放和字体”并将屏幕缩放从“中”设置为“大”时,布局中的某些元素(例如imagevIEw或button)将增长并超出屏幕.

由于我使用的是包含linearLayouts和FrameLayouts的复杂布局,因此我不清楚如何在其他任何设备或屏幕尺寸下使该布局看起来都不错.似乎当我更改屏幕缩放设置时,dp的值会更改.

有没有办法避免此问题,或者以编程方式将屏幕缩放设置设置为中?

这是我的代码:

<linearLayout    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:orIEntation="vertical"    androID:gravity="center"    androID:layout_gravity="center"    androID:layout_margintop="65dp">    <androID.support.constraint.ConstraintLayout        androID:ID="@+ID/frameLayout"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_marginBottom="95dp"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constrainttop_totopOf="parent"        app:layout_constraintVertical_bias="0.3">        <ImageVIEw            androID:ID="@+ID/imageVIEw"            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            androID:src="@drawable/home_map" />        <button            androID:ID="@+ID/pick1"            androID:layout_wIDth="34dp"            androID:layout_height="56dp"            androID:background="@drawable/top_deselected"            app:layout_constraintBottom_toBottomOf="@+ID/imageVIEw"            app:layout_constraintEnd_toEndOf="@+ID/imageVIEw"            app:layout_constraintHorizontal_bias="0.17"            app:layout_constraintStart_toStartOf="@+ID/imageVIEw"            app:layout_constrainttop_totopOf="parent"            app:layout_constraintVertical_bias="0.18" />        <button            androID:ID="@+ID/pick2"            androID:layout_wIDth="34dp"            androID:layout_height="56dp"            androID:background="@drawable/jungle_deselected"            app:layout_constraintBottom_toBottomOf="@+ID/imageVIEw"            app:layout_constraintEnd_toEndOf="@+ID/imageVIEw"            app:layout_constraintHorizontal_bias="0.28"            app:layout_constraintStart_toStartOf="@+ID/imageVIEw"            app:layout_constrainttop_totopOf="parent"            app:layout_constraintVertical_bias="0.367" />        <button            androID:ID="@+ID/pick3"            androID:layout_wIDth="34dp"            androID:layout_height="56dp"            androID:background="@drawable/mID_deselected"            app:layout_constraintBottom_toBottomOf="@+ID/imageVIEw"            app:layout_constraintEnd_toEndOf="@+ID/imageVIEw"            app:layout_constraintHorizontal_bias="0.424"            app:layout_constraintStart_toStartOf="@+ID/imageVIEw"            app:layout_constrainttop_totopOf="@+ID/imageVIEw"            app:layout_constraintVertical_bias="0.43" />        <button            androID:ID="@+ID/pick4"            androID:layout_wIDth="34dp"            androID:layout_height="56dp"            androID:background="@drawable/support_deselected"            app:layout_constraintBottom_toBottomOf="@+ID/imageVIEw"            app:layout_constraintEnd_toEndOf="parent"            app:layout_constraintHorizontal_bias="0.615"            app:layout_constraintStart_toStartOf="parent"            app:layout_constrainttop_totopOf="@+ID/imageVIEw"            app:layout_constraintVertical_bias="0.71" />        <button            androID:ID="@+ID/pick5"            androID:layout_wIDth="34dp"            androID:layout_height="56dp"            androID:background="@drawable/adc_deselected"            app:layout_constraintBottom_toBottomOf="@+ID/imageVIEw"            app:layout_constraintEnd_toEndOf="parent"            app:layout_constraintHorizontal_bias="0.733"            app:layout_constraintStart_toStartOf="parent"            app:layout_constrainttop_totopOf="@+ID/imageVIEw"            app:layout_constraintVertical_bias="0.71" />    </androID.support.constraint.ConstraintLayout>    <button        androID:layout_wIDth="335dp"        androID:layout_height="42.5dp"        androID:layout_marginBottom="5.5dp"        androID:background="@drawable/home_mode"        androID:ID="@+ID/home_mode"/>    <button        androID:layout_wIDth="335dp"        androID:layout_height="42.5dp"        androID:background="@drawable/home_match"        androID:ID="@+ID/home_match"/></linearLayout>

约束布局曾经是框架布局,但我现在正在尝试约束布局.

解决方法:

您也可以使用此库,该库可在所有设备上使用,而无需制作任何dimen文件.但仅将其用于小部件的大小,对于文本大小仅使用“ sp”.

https://github.com/intuit/sdp

总结

以上是内存溢出为你收集整理的Android:更改设备设置时的布局尺寸问题全部内容,希望文章能够帮你解决Android:更改设备设置时的布局尺寸问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1091933.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存