【问题标题】:How to create a custom listview like iPhone in Android如何在 Android 中创建类似 iPhone 的自定义列表视图
【发布时间】:2011-03-28 20:02:05
【问题描述】:

我正在按照在线教程 Android Series: Custom ListView items and adapters 在 Android 中设计一个自定义列表视图,然后我创建了一个这样的自定义列表视图:

这很简单。现在我在网上冲浪,发现了这个很棒的 iPhone 列表视图:

我怎样才能创建这样的东西?他如何为每一行提供一个类似盒子的界面,将它们与背景和彼此分开?

【问题讨论】:

  • 只是为了确认一下,您想要一个看起来像 iPhone 视图的列表视图吗?如果不自己完成所有绘图,我想不出默认的方法(不知道该怎么做)。那个 iPhone 视图看起来只是 safari 上的 html/css 对吧?

标签: iphone android android-layout android-listview


【解决方案1】:

您可以尝试删除列表分隔符(android:divider="@null" 或 android:dividerHeight="0px")并使用自定义可绘制对象作为每行的背景(9patch 或 ShapeDrawable,可能排列在 StateList 中,因此它们可以有按下/选择状态)。然后只需在行布局上放置一个边距,并且应注意间距(或者,您可以使用透明图像作为具有适当高度的列表分隔线)。但是要小心不要简单地模仿 iOS 风格,因为它看起来不错;想想典型的 Android 用户以及他们将什么作为界面提示。如果您让您的 Android 列表看起来与下面的屏幕截图完全相同,我想许多 Android 用户甚至都不会意识到他们可以点击这些行,或者他们是可滚动列表的一部分。

【讨论】:

  • 谢谢,我会试试这个。我同意,如果我让它完全一样,很多人不会觉得它是可点击的。我只是想让自定义列表视图看起来不错。你能推荐一些替代设计来代替 iPhone 吗??
  • 当然——首先,试试安卓的浅色主题,而不是默认的黑色;仅此一项,您将获得很多里程。我认为我们在 LevelUp 的列表 (market.android.com/details?id=com.scvngr.levelup.app) 上做得很好。 Twitter 的列表很简单,但可以完成工作 (market.android.com/details?id=com.twitter.android)。真正查看一堆流行的 Twitter 应用程序;他们可能会给你一些想法。
  • 哇,谢谢,我喜欢 scvenger 列表 ssl.gstatic.com/android/market/com.scvngr.levelup.app/…。如何更改默认主题?你是如何在你的图像上放置类似框架的效果的?有什么批处理工具吗??
  • 在 LevelUp 上,我们只是在布局中的图像(两个图像都在 FrameLayout 中)上动态覆盖框架 .png(使用具有透明中心区域的图像),以及图像本身从顶部/左侧偏移适当的量,使其适合框架(每侧约 1px 出血,您看不到那里)。对于在命令行中使用 Imagemagick 的预生成图像,您可能会获得类似的效果。更多主题:developer.android.com/guide/topics/ui/themes.html
【解决方案2】:

列表视图和列表视图中的每个项目可以有不同的背景。所以你需要做的就是制作一些PNG 文件,它们看起来像项目的背景和列表本身。

您可以使用android:src 在 XML 中设置背景。

或者在运行时使用:

setImageDrawable(getResources().getDrawable(R.drawable."picture name"))

【讨论】:

    猜你喜欢
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    相关资源
    最近更新 更多