Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 匹配不同的屏幕大小_Android_Layout_Size - Fatal编程技术网

Android 匹配不同的屏幕大小

Android 匹配不同的屏幕大小,android,layout,size,Android,Layout,Size,我的问题很简单,我以前从未这样做过,但现在我不得不寻找解决方案 使用常规布局 假设我有一个图像背景设置来匹配父对象,上面有3个不同的点,我应该在这些点上放置按钮,我添加了按钮并设置了一些边距dp,直到我满足这些点。例如:layout_marginTop=“50dp” 在预览屏幕上看起来不错,但是当我从相同大小的类别“布局正常”启动一些模拟器时 3.7英寸;4.0英寸;4.65英寸。。。看起来不一样。它看起来不错,只是在设备大小上我得到了预览 我该怎么办?我能做什么 我尝试修复图像,创建一个线性布

我的问题很简单,我以前从未这样做过,但现在我不得不寻找解决方案

使用常规布局

假设我有一个图像背景设置来匹配父对象,上面有3个不同的点,我应该在这些点上放置按钮,我添加了按钮并设置了一些边距dp,直到我满足这些点。例如:layout_marginTop=“50dp”

在预览屏幕上看起来不错,但是当我从相同大小的类别“布局正常”启动一些模拟器时

3.7英寸;4.0英寸;4.65英寸。。。看起来不一样。它看起来不错,只是在设备大小上我得到了预览

我该怎么办?我能做什么

我尝试修复图像,创建一个线性布局,将图像设置为背景,设置屏幕大小(比如400x250),并在布局中添加按钮

但是现在,当我在不同的模拟器中运行它时,我得到了空的空间,并且图像不能适应整个屏幕


Hrrrrrrr!我能做什么?

使用onPreDrawListener获取您的ImageView大小,或者如果它填满屏幕,您可以使用getDisplaySize获取它

您知道图像中的按钮放置点:

原始图像480x800->按钮1左:XX px顶部:XX px

新尺寸720x1280->按钮1左:YY px顶部:YY px

有了这些信息,您可以计算出在分辨率不是480x800的真实设备上放置按钮的位置(使用三的规则)

然后通过编程设置您的边距

事实上,我发现android文档为您提供了布局方面的其他可能性

--布局正常;布局小;布局大;布局xlarge

--布局-sw300dp;布局图-sw360dp;布局图-sw450dp;布局图-sw600dp; 布局图-sw800dp;其中sw表示布局资源所需的最小可用宽度

--布局-w300dp;布局图-w360dp;布局图-w450dp;布局图-w600dp;布局图-w800dp;式中,w表示布局所需的最小宽度

--布局图-h200dp;布局图-h260dp。。。其中h指布局所需的最小高度

我曾经给他们提供最小的可用宽度