Android:Scrollview延伸背景图片

时间:2012-07-30 16:25:17

标签: android android-layout

所以我试图让我的活动可滚动,当我将relativelayout放在滚动视图中时,会发生这种情况:

enter image description here

这是上面屏幕截图的代码:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/background"
        android:orientation="vertical"
        android:paddingLeft="60dp"
        android:paddingTop="53dp" >

        <ImageView
            android:id="@+id/gearImage"
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:layout_marginTop="70dp"
            android:clickable="true"
            android:contentDescription="@string/gearDescription_string"
            android:src="@drawable/gear" />
    </RelativeLayout>

</ScrollView>

如果我取出滚动视图,结果是正确的,但当然没有我想要的滚动功能:

enter image description here

现在,有什么方法可以让它看起来像这样:

enter image description here

所以我仍然可以滚动,但是如果它们到达我所拥有的背景图像的底部,它只是白色(很难分辨,因为网页的背景是白色的,但我在底部添加了一个白色矩形第二个图像,以显示我的意思)。无论如何,他们没有理由到达底部。

当然,如果您对如何在不拉伸背景图像的情况下实现滚动视图有任何其他建议,我将非常高兴听到它们。

谢谢。

5 个答案:

答案 0 :(得分:6)

结帐android:fillViewport。根据文档,这defines whether the scrollview should stretch its content to fill the viewport。将此行代码添加到ScrollView

android:fillViewport="true"

希望这有帮助。

编辑:

尝试以下方法:

  1. ScrollView设置android:layout_height="fill_parent"
  2. RelativeLayout设置android:layout_height="wrap_content"

答案 1 :(得分:2)

我有同样的问题,这对我有用:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/rel"  
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:background="@drawable/login_background"
    android:fillViewport="true"
    >

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
   android:orientation="vertical"
  >

答案 2 :(得分:1)

它不起作用的原因是我的图像在像素方面太大了。我想滚动视图被迫将图像保持原始大小,所以它的作用就是这样。它使长度成为原始图像的全长,因为我的scrollview是垂直的,并且沿着宽度压扁它,因为我没有滚动视图并排。

简单的解决方法是缩小图像。奇怪的是,它可以在普通布局中正确调整大小,但不能在scrollview内部调整大小。

答案 3 :(得分:0)

而不是将背景设置为RelativeLayout,而不是将其设置为ScrollView。因此,您只需将此属性从<RelativeLayout>标记移至<ScrollView>标记:

android:background="@drawable/background"

这将删除正在发生的拉伸,背景不会随RelativeLayout滚动。但这不会产生在未缩放背景下显示白色背景的效果。

答案 4 :(得分:0)

这解决了我的问题

将此行添加到清单文件中的相应活动

android:windowSoftInputMode="adjustResize"