gpt4 book ai didi

Android - dimens.xml 文件的别名?

转载 作者:数据小太阳 更新时间:2023-10-29 02:35:25 32 4
gpt4 key购买 nike

我正在尝试让我的 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/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com