根据Android中的屏幕尺寸动态添加视图[关闭]

Posted

技术标签:

【中文标题】根据Android中的屏幕尺寸动态添加视图[关闭]【英文标题】:Add views dynamically depending on the screen size in Android [closed] 【发布时间】:2012-06-11 22:23:08 【问题描述】:

我想连续动态添加视图(水平或垂直)。每个视图都有固定的大小和固定的填充。 如何根据设备屏幕尺寸动态确定可以添加多少视图。例如,与 xhdpi 设备相比,较小的手机或带有 mdpi 的手机添加的视图数量可能较少。

谢谢。

【问题讨论】:

为什么需要动态添加视图或者这是设计的先决条件?如果您只想根据屏幕大小调整内容,请为每个逻辑屏幕密度创建不同的布局。 ***.com/q/9371617/1210260 的可能重复项 嘿 dcanh121 你有答案吗 【参考方案1】:

有很多不同的方法。

首先,您可以通过调用 getWidth() 和 getHeight() 检查容器的大小 在您看来,您可以覆盖 onMeasure()

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
   int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
   int parentHeight = MeasureSpec.getSize(heightMeasureSpec);

如果您有基于屏幕大小的不同 XML 布局,您可以查看其中一个加载的内容并采取相应措施。

【讨论】:

我只有一个布局文件,比如空的LinearLayout。然后我将动态添加视图到这个布局中。 假设你的 View 设置为 fill_parent,你为什么不直接调用 developer.android.com/reference/android/view/… 看看你在处理什么。 我会将布局设置为 fill_parent。如果视图设置为 fill_parent,我无法在布局中添加多个视图视图 好的。但是您仍然可以处理视图的父级并做同样的事情,不是吗? 我不是在问如何添加视图。我在问,如何根据设备(mdpi 或 hdpi)决定应该添加多少视图,因为在某些设备上只能显示 4 个视图,而其他设备可以显示 5 个视图。

以上是关于根据Android中的屏幕尺寸动态添加视图[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为 iphone 4s 和 5/5c/5s 屏幕尺寸开发的最佳实践 [关闭]

如何根据swift 4或5中的图像大小使图像视图高度和宽度(纵横比)动态? [关闭]

自动布局视图在不同的屏幕尺寸上总是相同的尺寸

如何使用 ios 中的约束使视图位置动态化?

如何根据屏幕的物理尺寸按比例缩放布局?

根据各种屏幕尺寸自动布局集合视图