0

通过反复试验学习一些Android开发,但是根据手机的分辨率,我在图像视图顶部渲染按钮时遇到了一个小问题。

我有一个图像视图,顶部有两个图像按钮(目前)。它们是相对于图像视图的。我将在下面发布 xml 标记。问题是当我在 Android Studio 的“Nexus 4”上运行它时,一切看起来都是正确的。当我通过我的三星 Galaxy S4 进行调试时,图像按钮略微关闭,我不确定如果一切都与图像视图相关,为什么这会是一个问题。我知道分辨率是不同的,但是如何确保在最小的屏幕以及越来越流行的较新的 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"/>
4

2 回答 2

0

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

有关支持不同屏幕尺寸/分辨率的信息,请参阅此处的文档。layout您可以根据需要创建单独的文件。只需根据文档为布局文件夹名称使用不同的限定符,然后根据加载它的设备使用正确的限定符。

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

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

于 2013-07-17T16:25:18.977 回答
0

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

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

我正在创建一个与我相关的应用程序,并且我认为使用 android 中已经提供的一些核心功能很容易实现。我的想法是一个简单的英雄联盟丛林计时器应用程序。知道这一点很重要,因为我链接了图片,这样人们才能理解上下文。

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

http://i.stack.imgur.com/Ad3LZ.jpg
http://i.stack.imgur.com/NfhRM.png

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

所有这些图标 ImageViews 都是相对于地图的,这是第一个链接,因此它们总是会正确调整大小。如果重要的话,还有12个。

感谢你的帮助!

于 2013-07-18T13:07:16.813 回答