布局背景缩放,使用xml文件作为背景

时间:2012-11-24 13:23:14

标签: android android-layout

我正在开发的应用程序有一个背景图像,我希望缩放到不同的设备大小,最重要的是它应该适合宽度。背景渐渐变成黑色,所以我可以在主视图上有一个永久的黑色背景,看起来很好。

我制作了一个background.xml文件,目前我在res文件夹中只有800x1280像素图片的xlarge背景图片。当我使用三星Galaxy S3的设置在AVD上运行我的应用程序时,背景宽度不会填满整个屏幕,但其余的控件可以很好地缩放到屏幕上。

这是我的观点的开始:

<ScrollView android:id="@+id/MainScrollView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="#000000" 
    android:orientation="vertical"
    android:fillViewport="true">

<LinearLayout
    android:id="@+id/lineLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:background="@drawable/background"
    android:orientation="vertical"> 

我的background.xml如下所示:

<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
android:src="@drawable/mainappbg" 
android:gravity="top|left" android:filter="true" android:dither="true" />

希望有人可以提供帮助。

由于

我试过这个,有一个图像作为背景插入,但只有TasksButton和ServiceRapportButton是可见的,其余的内容都消失了。

<ScrollView android:id="@+id/MainScrollView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:background="#000000" 
android:orientation="vertical"
android:fillViewport="true">

<RelativeLayout 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent">
  <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:src="@drawable/mainappbg"/>

<LinearLayout
android:id="@+id/lineLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<RelativeLayout
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
     android:layout_height="85dp">
   <Button android:id="@+id/TasksButton" android:layout_width="wrap_content"      android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="5dp" android:layout_marginTop="5dp" android:background="@drawable/opgaver" android:onClick="TasksClickHandler" android:textSize="12sp"/>
   <Button android:id="@+id/ServiceRapportButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="15dp" android:layout_marginTop="40dp" android:background="@drawable/rapport" android:onClick="ServiceRapportClickHandler" android:textSize="12sp"/>       
</RelativeLayout>
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/tableLayout1">
      <Button android:id="@+id/LineButton" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" android:background="@drawable/lines" android:onClick="LineClickHandler" android:textSize="12dp"/>        
      <Button android:id="@+id/ServiceButton" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" android:background="@drawable/service" android:textSize="12dp" android:onClick="ServiceClickHandler"></Button>
      <Button android:id="@+id/NavigationButton" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" android:background="@drawable/navigate" android:textSize="12dp" android:onClick="NavigateClickHandler"></Button>         
</LinearLayout>

编辑,添加截图,我想在这些控件后面放置一个背景: Screenshot of app screen

1 个答案:

答案 0 :(得分:0)

如果LinearLayout@id/lineLayout1)的唯一目的是作为bg容器使用,请将其替换为ImageView set android:scaleType以匹配您想要实现的缩放结果

修改

将其包裹在RelativeLayout布局中,并将ImageView作为BG容器:

<ScrollView
   xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/MainScrollView"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent" 
   android:background="#000000" 
   android:orientation="vertical"
   android:fillViewport="true">

   <RelativeLayout 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent">
      <ImageView 
          android:id="@+id/imageView1" 
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" 
          android:src="@drawable/beta_bg_drawable"/>

        <LinearLayout 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent" 
            android:background="#5500ff00" 
            android:orientation="vertical">
        </LinearLayout>

   </RelativeLayout>

</ScrollView>