我有我的屏幕之一滚动型。 我想右边缘有一个阴影。 我决定这样做是为了使滚动型的RelativeLayout的孩子,有RelativeLayout的两个孩子最简单的方法 - 一个是LinearLayout中,将容纳屏幕的布局,第二是观影。
是这样的...
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- stuff -->
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/shadow"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
</ScrollView>
不幸的是,这完全不是那么回事。 该ImageView的迫使其尺寸为图像文件的大小。 它不会垂直拉伸是RelativeLayout的高度。 我也试过“match_parent”无济于事。 该图像是一个9补丁。
想法?
应用可绘制的内容作为源ImageView
有点与它承载您想要的视图竭尽所能,以适应内容,而不会非常修改内容本身的内在要求。 通常,这是你想出来的行为ImageView
。
你真正想要的是你通过设置绘制内容的获取行为background
的视图,为你并不真正需要的ImageView
都没有。 甲背景被设计成简单地伸展,填充等,以任何尺寸的视图。 此外,由于您使用RelativeLayout
你可以告诉视图通过增加以匹配绑定你的阴影视图的id
和一些额外的layout_align
参数。
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/content_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- stuff -->
</LinearLayout>
<View
android:layout_width="11dp"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignTop="@id/content_layout"
android:layout_alignBottom="@id/content_layout"
android:background="@drawable/shadow"
/>
</RelativeLayout>
试试这个
<ImageView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@drawable/ic_launcher"
android:scaleType="fitXY"
android:layout_alignParentRight="true"
/>
这里是我所得到的
和代码ID
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:scrollbars="none" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- stuff -->
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:background="@drawable/ic_launcher"
android:scaleType="fitXY" />
</RelativeLayout>
</ScrollView>
您的问题,无关与ImageView
或9补丁本身,而是与你包裹在一个一切事实ScrollView
。 一个ScrollView
将自动强制其子直接子包的内容,无论你告诉它FILL_PARENT
或MATCH_PARENT
-无论是做完全的方式同样的事情; 唯一的区别是名称,该名称更好地反映了标志的实际行为。
幸运的是ScrollView
提供了一种方法来迫使它以填补一个标志,这将使相当类似设置的行为视FILL_PARENT
到普通视图。 无论是添加属性android:fillViewport
或使用setFillViewport()
的代码。
编辑:只是要清楚,你需要设置该标志上的ScrollView
。 此外,如果它是ScrollView
应该有阴影,你能不能把你的9补丁作为背景呢? 我想这确实取决于你的实际形象是什么样子。 关于您发表评论:是的,RelativeLayout的是灵活的位置和大小的孩子而言,但任何一个孩子仍然会被绑定到其母公司的大小。
我确实有一些人可能对一些比你心里有什么不同的是工作的感觉。 这肯定会有助于澄清事情用一个简单的图。
你想对你的形象权的阴影,然后用单布局, Horizontal Orientation
,这是很好的,你必须决定使用相对布局。 使用
android:orientation="vertical"
这种布局内,加这两个图像。 如果您还有疑问,给我那两个图像或样本图像,我会给你的代码