【发布时间】:2012-03-01 02:44:18
【问题描述】:
谁能帮我创建一个如下图所示的 android 布局。 它有两列来存储图像。 每个图像具有相同的宽度。
非常感谢,
【问题讨论】:
-
你试过并排放置两个列表视图吗?
-
他们需要一起滚动吗?
-
@Macarse:是的,他们需要一起滑行。
标签: android android-layout android-ui
谁能帮我创建一个如下图所示的 android 布局。 它有两列来存储图像。 每个图像具有相同的宽度。
非常感谢,
【问题讨论】:
标签: android android-layout android-ui
最简单的方法是让两个列表视图并排放置,并连接它们的 onScroll() 方法,以便在它们滚动时相互滚动。 (不要忘记使用你正在以编程方式滚动的标志,否则你会得到 StackOverflowError (有点讽刺,是的:) 由于无限递归)。您可以通过滚动图像高度的一半来移动其中一个。
不过,这有点作弊。更好的方法是创建一个从 RelativeLayout 派生的自定义布局,该布局可以存储添加到其中的最后一个和倒数第二个视图的 id。添加下一个时,将其布局为 layout_below="@id/second_to_last",然后新添加的 View 变为最后一个,上一个最后一个 - 倒数第二个,下次您将在其下添加一个视图。 (是的,我知道,不完全是您所说的清晰描述:) 但请随时提出更多问题)
【讨论】:
ListView。
快速提示 - 请记住在 xml-layout 文件中为图像添加“android:adjustViewBounds="true"”。没有这个,图像在顶部和底部都有很大的边距。
只是提示,也许您对此有疑问。 还要记住 Android 中的缩放函数
【讨论】:
看 pinterest 之类的图片库加载器:https://github.com/etsy/AndroidStaggeredGrid
【讨论】:
您可以创建一个包含两列的 ScrollView(每列一个垂直的 LinearLayout)。要填充它,您只需为每个图像创建一个 ImageView 对象,然后通过调用 linearLayout1.addView(myImageView) 将其添加到列表中。请注意,如果添加大量图像,您可能会遇到内存问题...
您的布局文件看起来像这样:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<!-- Left column -->
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="160dp"
android:layout_height="fill_parent"
android:orientation="verical" />
<!-- Right column -->
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="160dp"
android:layout_height="fill_parent"
android:orientation="verical" />
</LinearLayout>
</ScrollView>
【讨论】: