Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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_Xml - Fatal编程技术网

Android 为什么这些图像按钮使用相对布局改变位置?

Android 为什么这些图像按钮使用相对布局改变位置?,android,xml,Android,Xml,通过尝试和错误学习一些Android开发,但是我有一个小问题,根据手机的分辨率在图像视图顶部呈现按钮 我有一个imageview,上面有两个ImageButton(目前)。它们是相对于imageview的。我将在下面发布xml标记。问题是,当我在Android studio的“Nexus4”上运行这个程序时,一切看起来都是正确的。当我调试三星Galaxy S4时,imagebuttons会稍微关闭,如果一切都与imageview相关,我不确定为什么会出现问题。我知道分辨率是不同的,但是如何确保在

通过尝试和错误学习一些Android开发,但是我有一个小问题,根据手机的分辨率在图像视图顶部呈现按钮

我有一个imageview,上面有两个ImageButton(目前)。它们是相对于imageview的。我将在下面发布xml标记。问题是,当我在Android studio的“Nexus4”上运行这个程序时,一切看起来都是正确的。当我调试三星Galaxy S4时,imagebuttons会稍微关闭,如果一切都与imageview相关,我不确定为什么会出现问题。我知道分辨率是不同的,但是如何确保在最小的屏幕以及越来越流行的新的1080p屏幕上呈现相同的分辨率呢

如果需要,我可以发布图片,但我觉得xml将提供有关该问题的足够信息

感谢您的帮助。提前谢谢

<ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/SRMap"
        android:layout_alignParentTop="false"
        android:layout_alignParentLeft="false"
        android:background="@drawable/sr_map"
        android:layout_columnSpan="2"
        android:layout_rowSpan="1"
        android:layout_column="0"
        android:layout_row="0"
        android:contentDescription="Map of Summoners Rift"
        android:cropToPadding="false"
        android:layout_marginBottom="177dp"/>

<ImageButton
        android:layout_width="15dp"
        android:layout_height="15dp"
        android:id="@+id/BlueSideAlert_BlueBuff"
        android:background="@drawable/blue_alert_circle"
        android:layout_alignTop="@+id/SRMap"
        android:layout_alignLeft="@+id/SRMap"
        android:layout_marginLeft="90dp"
        android:layout_marginTop="128dp"/>

<ImageButton
        android:layout_width="15dp"
        android:layout_height="15dp"
        android:id="@+id/BlueSideAlert_RedBuff"
        android:background="@drawable/blue_alert_circle"
        android:layout_alignTop="@+id/SRMap"
        android:layout_alignLeft="@+id/SRMap"
        android:layout_marginLeft="180dp"
        android:layout_marginTop="215dp"/>

但是,如何确保在最小的屏幕以及越来越流行的新的1080p屏幕上呈现相同的效果呢

关于支持不同的屏幕大小/分辨率。您可以创建单独的
布局
文件,并根据需要进行调整。只需根据文档对布局文件夹名称使用不同的限定符,就可以根据加载它的设备使用正确的限定符

您可以尝试调整一个文件以在不同的屏幕上工作,但如果它在不同的屏幕大小和分辨率上运行,则使用不同的布局会更好


例如:您可以有一个默认的
res/layout
文件夹和一个
res/layout large
用于更大的屏幕

我以一种相当丑陋的方式处理了这个问题,但它现在可以在所有屏幕大小上工作。基本上说,主映像是800x800 dp(映像视图)。按钮会比这个小(20x20 dp),但是通过透明,我创建了800x800 dp的ImageView(注意:不再是按钮),除了“图标”(仍然是20x20 dp)之外,所有东西都是透明的。虽然在文件大小方面稍大一些,但在我的例子中可以忽略不计。现在,无论屏幕大小如何,ImageView都会拉伸相同的长度,从而消除了使用不同像素密度时的任何猜测

我意识到这不是最优雅的解决方案,但我看不到任何缺点,除了使一些布局开发更加困难,图像文件稍微大一些。我使用Paint.NET来创建我使用的.png

我正在创建一个与我相关的应用程序,我认为使用安卓系统中已经提供的一些核心功能很容易实现。我的想法是一个简单的传奇联盟丛林定时器应用程序。这一点很重要,因为我将图片链接起来,以便人们能够理解上下文

请注意,两幅图像的分辨率相同,第二幅图像上没有边框


其他详情: 对于此应用程序,我已禁用“横向”方向,我计划使用此页面上提供的一些详细信息(布局)执行此操作

所有这些图标图像视图都是相对于地图的,地图是第一个链接,因此它们将始终正确调整大小。如果有必要的话,也有12个


谢谢大家的帮助

你所说的“imagebuttons稍微关闭”是什么意思,比如Nexus4模拟器上的渲染图像是即时打开的,但是当我使用手机进行调试时,imagebuttons可能会向右关闭10dp,向下关闭10dp。所以他们看起来很“不对劲”,很抱歉没有明确说明。我明白这一点,我可以为每个屏幕创建一个新的布局,但我只是希望有一个优雅的解决方案,让这个应用程序相对于屏幕大小看起来是一样的。不确定这是否可能,只是将我的模拟器更改为2.3“屏幕。。。在偏移量方面看起来更糟,但这是意料之中的。如果你想让它在不同的屏幕上看起来尽可能好,那就最好了way@codeMagic我不完全同意。Coomanperson918的问题可以通过代码(在绘制视图之后)调整布局元素的位置得到更好的解决。这将适用于所有屏幕尺寸
res/layout large
可用于利用额外空间。使用它来获得创造性的观点(可能是改变滑动抽屉固定)。用绝对值定位总是有问题的:在一台设备上看起来很好,在另一台设备上看起来很奇怪。@vikram我理解你的观点,但我仍然认为它更容易处理不同的文件,而且更容易调整不同的分辨率,而不仅仅是大小