gpt4 book ai didi

安卓:绝对布局?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:44:39 24 4
gpt4 key购买 nike

我是 Android 新手。我喜欢随心所欲地使用各种绘图对象。所以我一直在使用绝对布局。我收到一条消息,说要使用不同的布局。我读到这是因为不同手机的分辨率不同。我的问题是,这是不使用绝对布局的唯一原因吗?我做了一个使用度量来调整像素的方法。

public int widthRatio(double ratioIn){
DisplayMetrics dm = new DisplayMetrics(); //gets screen properties
getWindowManager().getDefaultDisplay().getMetrics(dm);
double screenWidth = dm.widthPixels; //gets screen height
double ratio = screenWidth/100; //gets the ratio in terms of %
int displayWidth = (int)(ratio*ratioIn); //multiplies ratio desired % of screen
return displayWidth;
}

//method to get height or Ypos that is a one size fits all
public int heightRatio(double ratioIn){
DisplayMetrics dm = new DisplayMetrics(); //gets screen properties
getWindowManager().getDefaultDisplay().getMetrics(dm);
double screenHeight = dm.heightPixels; //gets screen height
double ratio = screenHeight/100; //gets the ratio in terms of %
int newHeight = (int)(ratio*ratioIn); //multiplies ratio by desired % of screen
return newHeight;
}

//sets size of any view (button, text, ...) to a one size fits all screens
public void setSizeByRatio(View object, int width, int height){
LayoutParams params = object.getLayoutParams();
params.width = widthRatio(width);
params.height = heightRatio(height);
}

所以如果我说 setSizeByRatio(Button, 10, 25);它将按钮宽度设置为屏幕宽度的 10%,将高度设置为屏幕的 25%。

是否有任何手机无法使用绝对布局?此布局会导致任何其他问题吗?

最佳答案

AbsoluteLayout 被弃用的原因是因为您在 LinearLayout 或 GridLayout 中有其他选择,它们可以做同样的事情甚至更多。您似乎正在尝试根据绝对位置和像素数来计算位置,由于屏幕尺寸和密度的问题,这种方法通常应该避免。

阅读@amiekuser 提供的链接,重点了解最佳实践。一些提示是为 ldpi、mdpi 和 hdpi 文件夹创建图像,使用 dpi(密度独立像素)单位而不是原始像素,以及如何使用模拟器在多种屏幕尺寸和密度上测试您的应用。

编辑:

要设置 View 的 x 和 y 位置,您必须使用 LayoutParams。参见 this question关于如何使用 LayoutParams 为 View 设置 TopMargin 和 LeftMargin。

关于安卓:绝对布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9716197/

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