我有一个线性布局,有4个水平方向的图像。我的问题是第一张图片被剪裁了,我无法在我的银河系中看到它们,只能在一些模拟器中看到它们。请帮忙吗?这是我的线性布局代码:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageButton
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@drawable/header_new_3"
android:layout_weight="1"
/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@drawable/header_btn1"
/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@drawable/header_btn2"
/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@drawable/header_btn3"
/>
</LinearLayout>
这就是我想要的
这就是我得到的
@Jamo:image1:
image2,3,4:
答案 0 :(得分:0)
您的包含布局为fill_parent
,这意味着它仅限于其父级的宽度(可能是整个屏幕)。每个ImageButton
都设置为宽度wrap_content
,这意味着它只适合其内容的宽度。如果您使用的图像背景的宽度总和超过总父宽度,那么您将遇到问题。这似乎正在发生的事情。你不能在屏幕上放入比你拥有的像素更多的像素。
<强>更新强>
使用您提供的图形,“hello”图像为138px,星形为60px。 138 + 60 * 3 = 318.如果你的屏幕是480px宽(我认为Galaxy S是480宽)那么你应该能够适应。如果你将这些放入默认或mdpi文件夹(并且Galaxy S是hdpi),那么这些将被缩放到1.5x,即477px。这应该还是适合的。
答案 1 :(得分:0)
我知道创建类似内容的唯一方法是使用RelativeLayout,如下所示:
<RelativeLayout android:layout_height="wrap_content"
android:layout_width="fill_parent">
<ImageView android:layout_alignParentRight="true"
android:id="@+id/iv4"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/icon"/>
<ImageView android:layout_toLeftOf="@id/iv4"
android:id="@+id/iv3"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/icon"/>
<ImageView android:layout_toLeftOf="@id/iv3"
android:id="@+id/iv2"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/icon"/>
<ImageView android:layout_toLeftOf="@id/iv2"
android:id="@+id/iv1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:src="@drawable/icon"/>
</RelativeLayout>
答案 2 :(得分:0)
我们在上一个问题中聊过这个。请发布整个布局文件。如果总宽度受外部LinearLayout的父级约束,layout_weight将不会像其他帖子中暗示的那样做很多。
还有一些想法。
您有ImageView高度的“fill_parent”。我认为那些应该是“wrap_content”。你用'背景'而不是'src'设置图像,这有点奇怪。
此外,第一张图片应该在另一个布局容器中,以允许伸展不会搞砸'你好'。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_weight="1">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/header_new_3"
android:layout_gravity="center"
/>
</LinearLayout>
并非100%确定这正是您想要的,但最终目标是拉伸第一张图片而不会以任何方式剪切它。