【问题标题】:Android Design layout with soft buttons or notAndroid 设计布局是否带有软按钮
【发布时间】:2014-12-20 22:36:02
【问题描述】:

总的来说,我对 Android 开发还很陌生。现在我们有一个 UI 设计师,可以说他在 photoshop 中提供了一个 UI 设计,模板为 720x1280 (xhdpi)。然后我以像素为单位进行测量,然后将它们除以 2 以将其带回 mdpi。

当我在没有软按钮的手机上运行应用程序时,它与 UI 设计师提供的设计完美匹配。

但是当应用程序在具有软按钮的手机上运行时,例如 HTC m8,软按钮隐藏了应用程序的底部。

有没有办法解决这个问题?

设计师应该做2个UI设计吗? 1 没有软按钮和 1 没有软按钮?然后在我的应用程序中,我应该检测要使用哪个 UI?还有比这更好的解决方案吗?

这是我的问题的一个例子:

所以左边是UI设计,中间是在没有软键的手机上运行,​​右边是在有软键的手机上运行。

如果你有兴趣,这里是xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
    android:layout_width="match_parent"
    android:layout_height="450dp"
    android:background="@android:color/holo_blue_dark">

</View>
<View
    android:layout_width="match_parent"
    android:layout_height="116dp"
    android:padding="10dp"
    android:background="@android:color/holo_red_dark">

</View>
<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@android:color/holo_blue_dark">

</View>

对此的任何帮助表示赞赏,

【问题讨论】:

  • 在 Android 4.4 KitKat 及以上版本,您可以使导航栏透明:/answers/19733218。在较旧的 Android 版本上,您必须以其他方式解决问题。您可以通过编程方式检测是否使用了软导航:/answers/16608481

标签: android


【解决方案1】:

现在我们有一个 UI 设计师,假设他在 photoshop 中提供了一个 UI 设计,模板为 720x1280 (xhdpi)

首先,720x1280 未绑定到 xhdpi。密度与屏幕分辨率无关。

其次,并不是每台 Android 设备的屏幕分辨率都是 720x1280,甚至是 16:9 的宽高比。

但是,当应用程序在具有软按钮的手机(如 HTC m8)上运行时,软按钮会隐藏应用程序的底部。

让我们从网站的角度来考虑这一点。您所说的相当于说您正在尝试设计一个支持 720x1280 的网站,如果用户有胆量拥有不同大小的浏览器窗口,则该网站不会工作。

大多数人会认为这是一个有缺陷的设计,或者可能是一个有缺陷的设计的有缺陷的实现。

网页设计师和开发人员应该精通响应式设计的概念,使用流畅的布局等来利用可用的浏览器窗口空间。

移动应用开发也不例外

欢迎设计师为 720x1280 分辨率的屏幕制作 UI 模型或线框图。然而,设计师需要围绕一系列可能的屏幕尺寸(更不用说纵向与横向)设计。因此设计师需要指定布局规则,而不仅仅是创建模型。而且这些规则需要考虑不同的屏幕尺寸,以英寸或与密度无关的像素(Android 中的dp,相当于 Web 开发人员的 CSS 像素)而不是硬件像素来衡量。

有没有办法解决这个问题?

让设计师为布局提供实际规则,主要使用模型作为描述这些规则实施的工具。然后,您的工作将是解释这些规则并根据需要使用内置容器(例如,LinearLayoutRelativeLayoutTableLayoutGridLayout)或您自己的自定义 ViewGroups 对其进行编码。

设计师应该做2个UI设计吗?

设计师应该制作一个设计,但可能会制作一些模型,以帮助解释该设计如何响应不同的屏幕尺寸和方向。

【讨论】:

  • 不错的答案,但我仍然怀疑,例如,对于具有软导航和硬件按钮导航的设备,屏幕尺寸为 1280*800。所以可用的屏幕空间会有所不同,那么为此类应用程序设计图形布局的方法是什么。
  • @Darpan:和我写的一样。
  • 制作一个专注于两种设备(有和没有硬件按钮)的模型?即他们两个不同的图像集? (对不起,如果我天真,但我实际上并没有清楚地理解它)
  • @Darpan:“制作一个专注于两种设备(有和没有硬件按钮)的模型?” ——如果设计师觉得有必要,可以。根据设计者描述设计的方式,可能不需要。例如,如果小部件大小主要以百分比处理(由LinearLayoutandroid:layout_weight 实现),则导航栏高度的加减不会改变。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-23
  • 2011-02-26
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
相关资源
最近更新 更多