Android布局 - ImageView对齐问题

45

我正在尝试将一张图片放在一个LinearLayout的左上角,但是带有图片边框和填充的宽度要占据整个窗口。

如果我使用下面的XML代码,我的图片会带有边框和白色背景并横跨整个页面的宽度,但是图片会居中,而不是向左移动。

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:src="@drawable/banner"
    android:background="@android:color/white"
    android:padding="@dimen/d_8px"
/>

是否有一些我还没有发现的属性,可以在将layout_width设置为fill_parent时强制图像在ImageView内左对齐?

与此同时,我通过将ImageView放入另一个LinearLayout中,并在其右侧添加一个占用其余水平空间的空TextView来解决了这个问题。

2个回答

136

我遇到了一个类似的问题,你今天早些时候对此进行了回复。这是在Eclipse插件提供的“屏幕设计”视图和XML编辑器并排显示时还是在实际运行应用程序时遇到对齐问题?如果是前者,那么这似乎是插件中的一个bug;如果是后者,请尝试添加以下内容:

android:scaleType="fitStart"

根据我阅读的文档,这似乎是最接近你所需的。


1
这确实可以解决问题。而且,完全不使用ImageView,而是使用TextView的drawableLeft属性也可以达到同样的效果 :) - Alnitak
1
谢谢...非常好用,也省去了我自己提问的时间。 - iandisme
1
fitEnd将使它停留在底部... 这是我的困境,与同类的东西不按预期工作。 - Yevgeny Simkin
我有一个ImageView,它不想承认alignparentleft,但是用fitstart就可以=/ - Warpzit
完美的解决方案,伙计!在三星Galaxy S3和Panasonic JT-B1上正常工作。 - Link 88

8

只需在您的布局XML文件中配置ImageView,类似于以下内容:

<ImageView android:id="@+id/imageViewName" 
    android:layout_width="90dp" 
    android:layout_height="90dp" 
    android:scaleType="fitStart" 
    android:adjustViewBounds="true" 
    android:padding="10dp" 
    android:src="@drawable/ic_contact_picture"
    android:background="@color/white" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接