2011-10-30 76 views
0

我有一个TableLayoutScrollView与背景图像。我面临的问题是,在自定义背景图像中,衰落边缘的位置超出了背景图像的白色边界。这不是很好。我怎样才能使淡出边缘出现在白色边框之前?ScrollView与背景图像的衰落边缘:文字截图

http://img444.imageshack.us/img444/6775/fadingedge.png

XML

<ScrollView android:id="@+id/ScrollView01" 
android:layout_width="fill_parent" 
android:layout_height="240dip" 
android:layout_alignParentLeft="true" 
android:layout_marginRight="9dip" 
android:layout_marginLeft="10dip" 
android:background="@drawable/bg" 
> 
    <TableLayout android:id="@+id/table" android:layout_width="fill_parent" 
    android:layout_marginBottom="10dip" android:layout_marginTop="10dip"  
    android:layout_height="fill_parent"> 

    <TableRow android:id="@+id/TableRow01" android:layout_marginLeft="20dip"   
    android:layout_marginTop="10dip" android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
    </TableRow> 

    </TableLayout> 

</ScrollView> 
+0

尝试使用android:fadingEdgeLength =“10dp”为您的scrollView。 –

回答

1

广告android:paddingTop="10dip"android:paddingBottom="10dip"ScrollView项目。这样,这个容器中的元素(你的表格在这里)将具有“外部(顶部/底部)边缘”。

+0

这个技巧很好!我正在玩边缘..忘了存在填充 – newbie

2

您的背景图片是9补丁吗? 9个补丁可以用他们的内容区域定义填充。这可以用于填充实际滚动的区域,这将改变衰落边缘的位置。这是一个比手工定义填充更好的方法,因为填充在视觉上取决于您使用的背景资源。它只留下一个地方来定义这些参数。

请注意,从Android 4.0开始,我们已经开始摆脱淡入淡出的边缘,并且当您定位到API 14或更高版本时,默认情况下它们将被禁用。我们的用户体验团队并不喜欢它们与用户界面的其他元素进行视觉合成,并且在一些常见的移动GPU架构上以硬件加速模式呈现的代价过高。

+0

我的是不是9补丁。我想现在使用填充是唯一的方法。 – newbie

+0

对于像这样的容器,除非您始终保证此框在所有设备上的大小相同,否则它应该是9修补程序。 9补丁允许这些类型的容器轻松调整大小,并让Android的布局系统适应不同的屏幕尺寸。 – adamp

+0

我明白了。将研究它。谢谢! – newbie