要求graphics团队deviseAndroid应用程序UI的最佳实践

我不确定这是否可以在Android上支持多种设备上的多种外观因素。 这是我们通常面对的最痛苦的情景之一。

场景:devise团队为应用程序创buildUIgraphics,所有UI小部件的位置都已预先定义,如button,编辑文本等。 这是我们需要在我们的应用程序中使用的用户界面。

问题:没有办法链接UI小部件,例如提交button在图像上提交的实际位置。 有没有办法链接他们? 它会在所有forms的因素?

当前的解决scheme:使用布局重新创build整个UI的全部组件。

就像我在iOS中所知道的那样,实际上可以通过透明的背景将小部件放在顶部,而且它可以直接使用。 这是可能的,因为你可以玩x和y的绝对值。

– 编辑 –

我想从上面的描述中不太清楚。 问题不在于使用哪种Android布局,这意味着使用LinearLayout或RelativeLayout使用组件从头开始创build布局。

真正的问题是,当我们收到来自除了标准屏幕分辨率480X800以外的对Android或其平台一无所知的devise师的UIdevise时,我们应该给他们什么build议? 就像给我一个devise的所有组件作为图层,然后可以从头开始提取和使用Android的布局。

Solutions Collecting From Web of "要求graphics团队deviseAndroid应用程序UI的最佳实践"

好的,现在澄清你的问题,也许我可以分享一些经验。

小故事:我把我们的devise师发送到了Android UI准则( http://developer.android.com/guide/practices/ui_guidelines/index.html ),但他没有时间阅读,或者他没有关心它! 哈哈哈! 人…因为这个原因我们很难第一个应用程序!

确实,在Android网站上有很多关于如何进行devise的信息,但是到处散布(find信息的方法,也许只有我们,开发人员习惯了)。

所以这里是我的build议,基于我从Android网站获得的经验和经验:

  1. 制作一个应用程序的故事板来定义基本的外观,UI控件的位置等等。
  2. 由于应用程序需要一个很好的启动器图标,因此首先要向devise者发送Android网站上的图标模板( http://developer.android.com/shareables/icon_templates-v4.0.zip
  3. 坐下来与devise师(或做一个Skype会议),并确保他/她理解所有密度,ldpi,mdpi,hdpi和xhdpi以及PIXELS和DPI之间的区别。 确保他/她很了解,以避免将来出现问题。 (请参阅http://developer.android.com/guide/practices/screens_support.html
  4. 要求他们使用Vectors,因为每个资源都需要3种不同的大小。
  5. 解释他们的命名约定和文件夹结构。 要求他们使用ic_前缀命名文件并将其保存在适当的位置。 他们可以使用诸如自动化任务等Photoshopfunction将资源以不同的大小保存在正确的文件夹中,然后向您发送一个带有资源的zip文件。
  6. 指南build议devise者首先使用mdpi资源,然后获取其他大小进行testing。
  7. 请你的devise师创build一个“function原型”的应用程序。 如果他/她从事Photoshop工作,可以使用Dreamweaver将devise导出到实际的网站,然后浏览并浏览活动。 你可以有一个下载页面下载完整的一套
    最新的通讯录文件夹中的资源作为一个zip文件。
  8. 告诉他们Android使用类似于CSS的样式和主题,并且您将需要hex颜色。 要求提供渐变色等文档(您可以使用Chrome上的EyeDropper或Firefox上的CollorZilla来从Functional Prototype中提取它们)。
  9. 在模拟器上以不同的屏幕密度和大小创build许多不同的设备。

最后,没有“神奇的公式”……发送电子邮件甚至有时候都不会有效……最好的办法就是花一些时间和devise师一起写同一页面,这样投资的时间将很快偿还。

我在这里提到的是为我们工作,并相信我…我已经改变了应用程序的整个外观和感觉,它看起来非常好,让我们说,99%喜欢devise本身。

祝你好运(耐心)!

我感觉到你了。 但是,当我们需要了解并可能意识到iOS只有这么多的屏幕尺寸。 另一方面Android不是。 当为androiddevise时,我们不必对像素大小做任何假设,否则生活将变得更加复杂。 最好保持大小不可知,使用相对大小。 它与devisehtml页面的过程类似,可以任意大小显示。

此外,向他们展示.9.png图像如何工作以及如何创build这些图像。 如果您不需要自己创build图像,它可以节省大量时间。 另外,devise师倾向于更有创意地提供9个补丁的可能性。

这是可能的AbsoluteLayout但它是depretated。

有固定的布局是不理想的。 你可以devise它,也许一个肖像和一个风景版本,但是仍然有不同的屏幕高宽比,所以要么剪下来,剪下一些东西,要么适合屏幕,而要在一个方向上获得空的边缘。

我会build议使用RelativeLayout。

使用相对布局,您可以使用它们的@ids“引用”其他组件,并告诉它们位于相同级别(在相同的RelativeLayout内)的其他UI组件的上方,下方,toRightOf,toLeftOf,您可以将它们与其父视图的上,下,左或右。

例:

venue_row.xml是我为列表中的一行创build的布局文件:

android:background =“@ drawable / row_selector”>

<ImageView android:id="@+id/image_view_venue_row_thumb" android:layout_width="48dp" android:layout_height="48dp" android:scaleType="fitCenter" android:adjustViewBounds="true" android:src="@drawable/ic_default_map" android:background="@drawable/image_place_holder" android:layout_alignParentTop="true" android:layout_marginTop="4dip" android:layout_marginLeft="4dip" android:layout_marginRight="6dip" android:layout_gravity="center_horizontal" /> <ImageView android:id="@+id/image_view_more_arrow" android:layout_width="18dp" android:layout_height="18dp" android:src="@drawable/ic_view_more" android:layout_gravity="center_vertical" android:layout_centerVertical="true" android:layout_alignParentRight="true" /> <TextView android:id="@+id/text_view_venue_row_distance" android:text="0.5 Miles" android:layout_width="75dp" android:layout_height="wrap_content" android:minWidth="44dp" android:maxWidth="44dp" style="@style/VenueRowDistance" android:layout_centerVertical="true" android:layout_toLeftOf="@id/image_view_more_arrow" /> <TextView android:id="@+id/text_view_venue_row_name" android:singleLine="false" android:focusable="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="left" style="@style/VenueRowName" android:layout_toRightOf="@id/image_view_venue_row_thumb" android:layout_toLeftOf="@id/text_view_venue_row_distance" android:layout_alignParentTop="true" /> <TextView android:id="@+id/text_view_venue_row_description" android:singleLine="false" android:focusable="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="left" style="@style/VenueRowDescription" android:layout_below="@id/text_view_venue_row_name" android:layout_toRightOf="@id/image_view_venue_row_thumb" android:layout_toLeftOf="@id/text_view_venue_row_distance" /> 

这将产生一个布局,将保持一致,不pipe你可能有什么方向或屏幕大小。

景观。

肖像。

希望能帮助到你。

这个问题的最佳解决scheme是线性布局。

我在这些情况下做的是在垂直线性布局中嵌套水平线性布局,并使用权重调整位置,围绕我的实际button控制由空白TextViews。

取决于你正在开发的东西 – 如果你用完全定制的devise开发游戏或其他东西,没有特别的指导,但是如果你想使用非标准的控制,这里是有用的链接:

第一和第二

我投票GLes 1.0。

大多数目标受众,最容易和最熟悉的代码。 大多数程序员都是在顶点,索引和面孔上做梦,这要感谢富有的孩子们。