0

我正在使用 Android 2.3.6 和 2.3.1 。

我有一个不受欢迎的行为Gallery:来自画廊项目的侧面图片不会显示。

我的画廊占用了所有可用空间,并且包含ImageViewand a的布局TextView设置为WRAP_CONTENT但仍占据所有屏幕,因此侧面项目超出了界限......

这是画廊的xml

<RelativeLayout xmlns:a="http://schemas.android.com/apk/res/android"
    a:layout_width="match_parent"
    a:layout_height="match_parent"
    a:layout_margin="0dp"
    a:padding="0dp">

    <ImageView
        a:id="@+imagePopup/selected"
        a:layout_width="60dp"
        a:layout_height="35dp"
        a:layout_alignParentLeft="true"
        a:layout_alignParentTop="true"
        a:src="@drawable/ic_cancel"
        a:contentDescription="@string/lng" />
    <TextView
        a:id="@+imagePopup/title"
        a:layout_alignParentTop="true"
        a:layout_toRightOf="@+imagePopup/selected"
        a:layout_alignWithParentIfMissing="true"
        a:layout_width="match_parent"
        a:layout_height="35dp"
        a:background="@drawable/rounded"
        a:text="dynamic text"
        a:textSize="23dp"
        a:textColor="#ffffffff"
        a:gravity="center"
        style="@style/trad"/>
    <Gallery
        a:id="@+imagePopup/gallery"
        a:layout_width="match_parent"
        a:layout_height="match_parent"
        a:layout_below="@+imagePopup/title"
        a:layout_alignWithParentIfMissing="true"
        a:background="#ff000000"/>
</RelativeLayout>

及其内容xml

<RelativeLayout xmlns:a="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    a:layout_width="wrap_content"
    a:layout_height="wrap_content"
    a:background="#ffff55ee">

    <ImageView
        a:id="@+imageContent/imageView"
        a:layout_width="wrap_content"
        a:layout_height="wrap_content"
        a:layout_alignParentTop="true"
        a:padding="0dp"
        a:layout_margin="0dp"
        a:src="@drawable/ic_cancel" />

    <TextView
        a:id="@+imageContent/textOver"
        a:layout_width="wrap_content"
        a:layout_height="wrap_content"
        a:layout_alignParentTop="true"
        a:layout_centerHorizontal="true"
        a:layout_marginTop="4dp"
        a:shadowColor="#FF000000"
        a:shadowRadius="4"
        a:textColor="#ffffffff"
        a:textSize="16dp"
        a:textStyle="bold" />

</RelativeLayout>

我在图片容器的背景 ( RelativeLayout) 中添加了丑陋的背景颜色,以显示它的行为:

画廊展示

有人可以告诉我我在这里做错了什么......我就是无法摆脱它。

提前谢谢^^

4

2 回答 2

1

我认为问题与您的图像有关。您正在尝试显示一个更可能覆盖整个屏幕的巨大图像。

您必须为您的图像提供一些预定义的宽度和高度属性。

而不是 wrap_content 您提供的内容如下所示,

  <ImageView
        a:id="@+imageContent/imageView"
        a:layout_width="wrap_content"
        a:layout_height="wrap_content"
        a:layout_alignParentTop="true"
        a:padding="0dp"
        a:layout_margin="0dp"
        a:src="@drawable/ic_cancel" />

尝试提供这样的东西,

  <ImageView
    a:id="@+imageContent/imageView"
    a:layout_width="150dip"
    a:layout_height="150dip"
    a:layout_alignParentTop="true"
    a:padding="0dp"
    a:layout_margin="0dp"
    a:src="@drawable/ic_cancel" />

注意:我在这里指定的布局宽度和高度只是虚构的。你必须提供你自己的。

而且您必须知道 wrap_content、fill_parent 和实际硬编码宽度和高度之间的区别。

  1. Wrap_cotent - 这意味着,它将使用您实际图像的宽度和高度。

  2. fill_parent - 无论图像的大小如何,它都会占据整个屏幕。

  3. 通过我们自己的方式提供高度和宽度,您可以通过提供特定的宽度和高度属性使其均匀显示的图像大小。

于 2012-08-03T07:24:58.607 回答
1

最后,我找到了一种更好的方法,更“自然”:这是我的代码的修改部分:

<RelativeLayout xmlns:a="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    a:layout_width="wrap_content"
    a:layout_height="match_parent"
    tools:ignore="ContentDescription">

    <ImageView
        a:id="@+imageContent/imageView"
        a:layout_width="wrap_content"
        a:layout_height="match_parent"
        a:layout_alignParentTop="true"
        a:scaleType="fitXY"
        a:adjustViewBounds="true"
        a:src="@drawable/ic_cancel" />

scaleType="fitXY"很快就adjustViewBounds="true"做到了,多亏了这个问题

于 2012-08-03T09:45:38.640 回答