- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试让我的 Android 应用程序支持多种屏幕尺寸。我试图通过使用不同的 dimens.xml 文件更改布局的 dp 值来将我的替代布局保持在最低限度。
糟糕的部分是我有 9 个不同的文件夹,其中包含 dimens 文件(values、values-sw320dp、values-sw480dp、values-sw600dp 和 values-sw720dp,用于更高的 api、values-small、values-normal、values- large,values-xlarge for older apis)而且我讨厌一遍又一遍地从我的 sw values 文件夹复制粘贴到旧的 values 文件夹。
我知道如何创建 layout.xml 文件别名 like this shows ,但是有谁知道您是否可以对 dimens 文件执行此操作?我尝试在我的 values.xml 中制作多个 dimens 文件,但当然它不起作用,因为我的两个 dimens 文件具有相同名称的属性,这会导致冲突。
我可以将我的 dimens 文件命名为 values-sw600dp
dimens-large.xml
并在 values-large
文件夹中引用它吗?
最佳答案
您可以动态更改布局组件的大小。在这里,我根据 480*854 大小的屏幕创建第一个 xml 布局。下面的代码会根据屏幕尺寸自动适配 UI。
int width = 0;
int height = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
getTheDisplay();
getUiComponents();
adjustUIComponents();
}private void getTheDisplay() {
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
width = dm.widthPixels;
height = dm.heightPixels;
}private void adjustUIComponents() {
// myButton is button from layout xml file
adjustUI(myButton);
}private void adjustUI(View v) {
//myButton is in LinearLayout
LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams)v.getLayoutParams();
lp.width = calculateWidth(211);//211 is width of button in px given in xml
lp.height = calculateHeight(80);//80 is height of button in px given in xml
v.setLayoutParams(lp);
}private int calculateWidth(int w) {
int wi = (w * width) / 480;
return wi;
}
private int calculateHeight(int h) {
int hi = (h * height) / 854;
return hi;
}
关于Android - dimens.xml 文件的别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22087104/
是否可以在另一个维度中使用维度资源的引用?我的意思是这样的: 文件dimen.xml: 18sp @dimen/test1 最佳答案 它按照我发布的方式工作 18sp @dimen/test1 关于a
我无法理解 dimen 资源属性。 我有 3 个值文件夹:value-normal、value-large 和 value-xlarge。 我已经将标题大小定义为正常 20,大 25,超大 30,这是
我有 2 台测试设备,即 Oneplus 3T 和三星 S9。我在 xxhdpi 文件夹(适用于 Oneplus 3T)和 xxxhdpi 文件夹(适用于三星 S9)中创建了 dimens.xml。坦
在我的应用程序检查屏幕功能后,我需要在运行时选择特定的 dimens.xml。我不想通过项目文件夹(\values,\values-large,...)自动选择来为我选择 Android。 由于我的低
我必须为两种不同类型的设备提供两种不同的字体大小。第一组是较小的设备(例如 Nexus S,或高度约为 480 像素的设备),第二组是所有其他手机(例如 Galaxy Nexus、Nexus 4、5
我不熟悉使用多个屏幕,需要以下方面的帮助: 我有 2 台设备: 三星 S4 展示类:普通 最小宽度:360dp 分辨率:1080 * 1920 密度等级:XXHDPI 密度:442dpi 三星平板电脑
找不到资源。这是我的资源: 维度.xml 10dp 在我的 fragment 中,我尝试了以下各项: val padding = getResources().getDimension(R
在我的 dimens.xml 中我有: 7sp 在我的代码中: Logger.i(getClass(), "size is " + getResources().getDimension(R.dime
我只想根据分辨率缩放文本,所以我创建了: /res/values-ldpi/dimens.xml /res/values-mdpi/dimens.xml /res/values-hdpi/dimens
我使用 dimen.xml 来支持多种屏幕尺寸。 我如何访问文件并从代码中获取维度以便在应用程序中使用? 约夫 最佳答案 您可以使用以下内容: float yourDimen = getResourc
嘿嘿 friend 们, 目前我正在学习 Android Studio 的新布局编辑器和新的ConstraintLayout。 顺便说一句,我讨厌它。 但我遇到了问题,如果我想用 @dimen 指定
在下面的代码中: @dimen/activity_vertical_margin 是做什么的?我找不到它的任何文档。我知道填充是什么。我只想了解 @dimen/activity_vertical_m
创建尺寸资源文件时可用限定符中的最小屏幕宽度和屏幕宽度之间有什么区别。它们如何影响设备?请澄清我的疑问 最佳答案 假设您有一个 720X480 的屏幕,那么最小宽度始终为 480,但如果屏幕是纵向屏幕
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我的 res/dimens.xml 中有一个维度资源设置,如下所示: 40.0dp 但是,当我像这样将它抓取到一个 float 对象中时: float cornerRadius = R.dimen.c
我正在尝试让我的 Android 应用程序支持多种屏幕尺寸。我试图通过使用不同的 dimens.xml 文件更改布局的 dp 值来将我的替代布局保持在最低限度。 糟糕的部分是我有 9 个不同的文件夹,
我想使用类似于 androids dimens.xml 的东西来在我的应用程序中强制执行一致性。 考虑到它在 Flutter 中的高度集成度,我确信 Material Design 会有一些预定义的值
如果我有一个 2 行 2 列的表格布局。每个象限表框都有静态文本,如“box_11”、“box_12”、“box_21”、“box_22”。我希望文本大小在大屏幕上更大,在小屏幕上更小。我希望文本根据
我的项目目前只有一个 dimens 文件。我知道我所有的 dimens 在 nexus 5 上看起来都不错,我相信它的 dpi 为 445,dpx 为 3。我的问题是这是否使它成为 mdpi、hdpi
我有点困惑如何在 AndroidStudio 中处理多个 dimens.xml 文件(不是针对不同的屏幕分辨率和大小,而是来自多个库模块)。 我有一个 AndroidStudio 项目,它由一个主模块
我是一名优秀的程序员,十分优秀!