如何根据设备的分辨率更改样式?

     2023-03-17     24

关键词:

【中文标题】如何根据设备的分辨率更改样式?【英文标题】:How do I get the style to change based on the resolution of the device? 【发布时间】:2021-12-18 06:00:36 【问题描述】:

我一直在处理我的 styles.xml 文件,以便根据加载应用程序的分辨率使按钮的文本更改颜色。我对样式进行了研究,发现可以添加一些限定符来根据分辨率指定相同的样式,例如 sw720 分辨率的“someStyle”和“someStyle_sw720”。所以我在应用中定义了样式“BodyButtonStyle”和“BodyButtonStyle_sw720”,并赋予了它们不同的值。

styles.xml 中的两种样式(默认和 sw720 样式)-

默认值:

<style name="BodyButtonStyle">
    <item name="android:layout_width">280dp</item>
    <item name="android:layout_height">50dp</item>
    <item name="android:fontFamily">@font/someText</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:textAlignment">center</item>
    <item name="android:textColor">@color/colorWhite</item>
    <item name="android:textSize">25sp</item>
    <item name="android:background">@drawable/rectangle_shape_button</item>
     <item name="android:layout_gravity">center</item>
</style>

sw720:

<style name="BodyButtonStyle_sw720">
    <item name="android:layout_width">200dp</item>
    <item name="android:layout_height">50dp</item>
    <item name="android:fontFamily">@font/someText</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:textAlignment">center</item>
    <item name="android:textColor">@color/colorPurple</item>
    <item name="android:textSize">30sp</item>
    <item name="android:background">@drawable/rectangle_shape_button</item>
    <item name="android:layout_gravity">center</item>
</style>

在我使用的布局中,样式设置为“@style/BodyButtonStyle”。我假设如果我以 sw720 以外的任何分辨率加载应用程序,我会得到白色 (colorWhite) 文本,而 sw720 分辨率会给它紫色 (colorPurple) 文本。我做出这个假设是因为当有多个不同分辨率的布局时,应用程序会根据设备的分辨率选择正确的布局(即名为“someLayout”的布局有一个 sw720 版本和一个 sw800 版本,一个 sw800 设备会加载 sw800 布局)。

我在这里遗漏了什么吗?我也尝试过创建额外的styles.xml 文件并使用他们自己的“BodyButtonStyle”加载它们,并根据分辨率使用不同的值,但无论分辨率如何,应用程序似乎总是加载默认值。最终,我的目标是获得一个单一的布局来根据设备的分辨率为元素加载不同的值,而样式似乎是解决这个问题的方法;然而,虽然我似乎遵循了限定符的说明(在样式名称中添加“_sw720”),但它不起作用,只加载默认的“BodyButtonStyle”。

【问题讨论】:

【参考方案1】:

除非自从我上次这样做后事情发生了变化,否则您需要为每个分辨率创建单独的 styles.xml 文件并将它们放在单独的文件夹中。两个文件中的样式名称应该相同。一个将放在“values”文件夹中,另一个将放在“values-sw720dp”中。

【讨论】:

如何根据设备方向更改堆栈视图方向?

】如何根据设备方向更改堆栈视图方向?【英文标题】:Howtochangestackvieworientationdependingondeviceorientation?【发布时间】:2021-03-2120:05:11【问题描述】:对于尺寸等级为常规-常规的Ipad,适用于纵向/横向两种设备方向,我想强制堆栈... 查看详情

如何根据设备主题更改collectionview单元格颜色(按照我的配色方案)

】如何根据设备主题更改collectionview单元格颜色(按照我的配色方案)【英文标题】:Howtochangecollectionviewcellscolorbasedondevicetheme(followingmycolorscheme)【发布时间】:2020-10-2815:27:08【问题描述】:概述:我正在使用集合视图构建键盘... 查看详情

如何根据表单提交使用 jQuery 更改 CSS 样式?

】如何根据表单提交使用jQuery更改CSS样式?【英文标题】:HowtochangeCSSstylingwithjQuerybasedonformsubmission?【发布时间】:2021-02-2706:32:43【问题描述】:我正在尝试使用jQuery和常规JS根据表单输入更改网页的CSS。我对此感到非常困难,... 查看详情

如何根据设备/屏幕分辨率调整屏幕?

】如何根据设备/屏幕分辨率调整屏幕?【英文标题】:Howtofitscreenasperdevice/screenresolution?【发布时间】:2013-06-2606:55:33【问题描述】:我已经使用Extjs4.1完成了应用程序,效果非常好。客户端他们需要屏幕,就像他们在手机以外... 查看详情

如何根据 SwiftUI 中的 @State 更改导航视图的导航视图样式?

】如何根据SwiftUI中的@State更改导航视图的导航视图样式?【英文标题】:HowtochangetheNavigationViewStyleofaNavigationViewdependingona@StateinSwiftUI?【发布时间】:2021-04-1506:46:22【问题描述】:我目前在SwiftUI中与NavigationView合作。问题:我想... 查看详情

如何根据浏览器大小切换 CSS 样式表(更改网站的外观)[重复]

】如何根据浏览器大小切换CSS样式表(更改网站的外观)[重复]【英文标题】:HowtoswitchCSSstylesheets(changewhatthewebsitelookslike)basedoffofbrowsersize[duplicate]【发布时间】:2020-09-0920:11:47【问题描述】:我正在尝试创建我的网站的两个版本... 查看详情

如何根据两个数组详细信息中的数据更改表格视图单元格的样式如下

】如何根据两个数组详细信息中的数据更改表格视图单元格的样式如下【英文标题】:howtochangestyleoftableviewcellaccordingtodatawhichisintwoarraydetailisbelow【发布时间】:2017-06-0216:29:02【问题描述】:我有一个表格视图,其中有一个部分... 查看详情

如何根据按钮样式更改 Bootstrap 5 工具提示颜色?

】如何根据按钮样式更改Bootstrap5工具提示颜色?【英文标题】:HowcanIchangeaBootstrap5tooltipcolorbasedonbuttonstyle?【发布时间】:2022-01-1721:05:29【问题描述】:我需要一些帮助,我想根据按钮主颜色更改工具提示background-color。例如:如... 查看详情

如何使用 Xamarin 在 xaml 中创建自定义字体大小,以便您可以根据设备更改字体大小?

】如何使用Xamarin在xaml中创建自定义字体大小,以便您可以根据设备更改字体大小?【英文标题】:HowtocreateacustomfontsizeinxamlusingXamarin,sothatyoucanchangefontsizesdependingondevice?【发布时间】:2020-04-2402:55:04【问题描述】:是否有方法可... 查看详情

如何根据默认的 DataGrid 样式创建样式?

】如何根据默认的DataGrid样式创建样式?【英文标题】:HowtocreatestylebasedondefaultDataGridstyle?【发布时间】:2011-06-2612:47:17【问题描述】:我有扩展DataGrid的自定义控件。它被称为ExtendedDataGrid。我想为ExtendedDataGrid提供与DataGrids样式... 查看详情

如何根据对另一个 UIWindow 的更改来更新 UIWindow?

】如何根据对另一个UIWindow的更改来更新UIWindow?【英文标题】:HowtoupdateUIWindowbasedonchangestoanotherUIWindow?【发布时间】:2015-06-1014:58:56【问题描述】:当我的iPhone/iPad要连接到外接显示器时,就会出现这种情况。在正常情况下,整... 查看详情

如何更改棒棒糖设备状态栏的颜色? [复制]

】如何更改棒棒糖设备状态栏的颜色?[复制]【英文标题】:Howtochangethecolorforthestatusbarforlollipopdevices?[duplicate]【发布时间】:2017-10-1618:23:45【问题描述】:我遇到了更改棒棒糖设备状态栏颜色的问题。最初我的状态栏颜色为浅灰... 查看详情

如何在 JavaScript 中更改元素的样式属性?

】如何在JavaScript中更改元素的样式属性?【英文标题】:HowtochangestylepropertiesofanelementinJavaScript?【发布时间】:2022-01-1605:55:03【问题描述】:我正在制作一个小型在线应用程序,它需要用户输入一些选项,并且网站会根据他们的... 查看详情

如何根据设备宽度更改下载按钮的href和onclick功能(代码片段)

我想根据设备宽度(手机,平板电脑,个人电脑)更改下载链接我需要做什么?<ahref="url"onclick="function";class="btnbtn-primaryjs-scroll-triggerdownload">Download</a>答案在this回答你了解到有很多方法可以获得js中的设备宽度。其中最... 查看详情

根据设备更改字体大小

】根据设备更改字体大小【英文标题】:Changefontsizebaseondevice【发布时间】:2020-08-2107:22:03【问题描述】:有什么方法可以了解用户正在使用哪种类型的设备。我想用它来改变iPhone8的字体大小,如果device=="iPhone8"useTextfontsize20elseu... 查看详情

根据设备方向快速更改约束

】根据设备方向快速更改约束【英文标题】:Swiftchangingconstraintsdependingondeviceorientation【发布时间】:2017-11-0218:54:15【问题描述】:当设备从纵向旋转到横向时,视图的宽度约束会更新,但是当设备从横向旋转到纵向时它不会更... 查看详情

根据设备方向更改图像

】根据设备方向更改图像【英文标题】:Changingimagesdependingondeviceorientation【发布时间】:2012-12-1616:11:06【问题描述】:我正在为一家本地公司使用PhoneGap构建一个基本的网络应用程序。我为应用程序顶部的标题/横幅创建了两个图... 查看详情

根据应用顶部的状态更改样式组件样式

】根据应用顶部的状态更改样式组件样式【英文标题】:Changingastyled-componentstylebasedonstateatthetopofapp【发布时间】:2020-12-3111:08:59【问题描述】:所以我有一个简单的导航栏,当点击某个媒体查询时它会变成一个汉堡包,当我点... 查看详情