android:我应该使用哪个视图来显示文本和图像?

时间:2010-03-30 20:05:05

标签: android layout

我的应用程序显示了一个项目列表,其中每一行都是项目标题及其图像旁边,该行保留70%的文本空间和30%的图像。想象一下iphone app store的样子。建议使用哪种视图/布局组合?

我用Google搜索并找到这篇文章:

http://www.curious-creature.org/2009/02/22/android-layout-tricks-1/

这种观点听起来不错吗?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"

android:padding="6dip">

<ImageView
    android:id="@+id/icon"

    android:layout_width="wrap_content"
    android:layout_height="fill_parent"

    android:layout_alignParentTop="true"
    android:layout_alignParentBottom="true"
    android:layout_marginRight="6dip"

    android:src="@drawable/icon" />

<TextView
    android:id="@+id/secondLine"

    android:layout_width="fill_parent"
    android:layout_height="26dip" 

    android:layout_toRightOf="@id/icon"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"

    android:singleLine="true"
    android:ellipsize="marquee"
    android:text="Simple application that shows how to use RelativeLayout" />

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"

    android:layout_toRightOf="@id/icon"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_above="@id/secondLine"
    android:layout_alignWithParentIfMissing="true"

    android:gravity="center_vertical"
    android:text="My Application" />

2 个答案:

答案 0 :(得分:1)

ListView,具有该行的自定义布局。创建ListAdapter(SimpleAdapter / ArrayAdapter)时,可以在构造函数中传递布局。如果图像始终相同,则非常简单,但如果图像不同,则需要覆盖getView方法以创建行的视图。

答案 1 :(得分:1)

如果通过“iPhone应用程序商店看起来像什么”,你的意思是“几乎所有的单一列表都在那里”(好吧,至少据我可以通过描述来判断,从未真正看过iPhone应用程序商店),似乎只有一种方法可行。 “理想”解决方案是使用RelativeLayout,因为它允许您在图像旁边有两行文本,而无需复杂的布局结构。但是,正如您在this questionthis other question中看到的那样,似乎存在一些问题。因此,如果您需要多行文本,则回退是使用水平LinearLayout,并在其中嵌套第二个垂直LinearLayout。有关LinearLayout应该是什么样子的更多详细信息,请参阅这些帖子。

注意:我假设你知道如何使用ListView。如果您不知道ListView的工作原理,那么我建议this article作为一个很好的起点。它有点旧,但仍然很好。请确保您也阅读了its sequels,其中介绍了如何使用convertView优化。

编辑:对于阅读此内容的其他人来说,这里有一个tutorial on Lists格式更好,更容易阅读。