Android LinearLayout和图像

时间:2011-09-30 23:20:44

标签: android android-linearlayout

好吧,我知道这不会很难,但我有一点时间了。我是一名经验丰富的Java程序员,但对Android来说很新(好吧,所以我正在努力我的第一个测试应用仍然......)

我想在屏幕上显示3张图片,一张“主”图像占据屏幕的前75%,然后在屏幕下方水平放置两张较小的图像。 (想象一下画廊,显示主(当前)图像,左侧下方是“上一个”图像图标,右侧下方是“下一个”图像图标。)

我没有大小图像,它们只是大而且我希望它们以缩放的方式显示。问题是无论我做什么,“主”图像占用太多空间,因此最常见的是,底部的图像根本不可见。

我意识到我可以将主图像的高度设置为指定的下降次数并且已经有效,但是如果我的应用程序进入具有不同密度的设备,它将看起来很傻。我试过玩android:layout_weight,但没有运气。我认为如果我将layout_weights设置为相同,它会使视图占据相同的比例,但“主”图像总是占主导地位,导致小图像被剪切在底部或完全推离屏幕。

我也意识到我可能会使用其他布局,但只是让根布局是一个垂直的LinearLayout,它由一个图像和一个由2个图像组成的水平LinearLayout组成。像这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >

  <ImageView
    android:id="@+id/cbPicView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:src="@drawable/cb1"
    android:layout_weight="1"
  />

  <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    >

    <ImageView
      android:id="@+id/cbPrevPicView"
      android:layout_width="50dip"
      android:layout_height="50dip"
      android:src="@drawable/cb4"
      android:layout_weight="1"
    />

    <ImageView
      android:id="@+id/cbNextPicView"
      android:layout_width="50dip"
      android:layout_height="50dip"
      android:src="@drawable/cb2"
      android:layout_weight="1"
    />
  </LinearLayout>
</LinearLayout>

对不起,请尽量提供尽可能详细的信息。谢谢!

1 个答案:

答案 0 :(得分:5)

这会产生类似的东西:

-------

   1

-------
 2 | 3
-------

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >

  <ImageView
    android:id="@+id/cbPicView"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_gravity="center_horizontal"
    android:src="@drawable/cb1"
    android:layout_weight="3"
  />

  <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    >

    <ImageView
      android:id="@+id/cbPrevPicView"
      android:layout_width="0dp"
      android:layout_height="fill_parent"
      android:src="@drawable/cb4"
      android:layout_weight="1"
    />

    <ImageView
      android:id="@+id/cbNextPicView"
      android:layout_width="0dp"
      android:layout_height="fill_parent"
      android:src="@drawable/cb2"
      android:layout_weight="1"
    />
  </LinearLayout>
</LinearLayout>