Android App背景:使用多个图像

时间:2012-04-21 15:19:40

标签: android background styles tile app-themes

我有一张背景图片,分为三个单独的图片:

backgroundTop.png
backgroundMiddle.png
backgroundBottom.png

我如何在Android应用中实现背景,其中顶部图像显示在应用程序的顶部,底部图像显示在底部,中间图像在其间平铺?这当然取决于屏幕上加载了多少内容 - 就像在网页中一样。

换句话说,平铺中间图像的总次数取决于屏幕上的内容。

我在这里看到了从单个图片中实现平铺背景的解决方案:How to make android app's background image repeat

如果您使用的是单张图片,则可以正常使用,但不能使用多张图片。

链接到下面的示例,以便您知道我的意思:

http://rockfreaks.net/images/reviewPageTop.png

http://rockfreaks.net/images/reviewPageMiddle.png

http://rockfreaks.net/images/reviewPageBottom.png

3 个答案:

答案 0 :(得分:9)

认为您可以尝试将layer list drawable(可以为图层设置插入内容)与平铺位图drawable结合使用,该位图可作为中间层放置并使用适当的插图进行定位。

这样的事情:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/page_top" />
  <item 
     android:insetTop="@dimen/page_top_height"
     android:insetBottom="@dimen/page_bottom_height"
     >
    <bitmap
        android:src="@drawable/page_middle_tile"
        android:tileMode="repeat"
        />
  </item>
  <item android:drawable="@drawable/page_bottom" />
</layer-list>

但这一切都取决于你的布局。

答案 1 :(得分:1)

将背景设置为中间图像并平铺。 (就像你展示的例子一样)

创建一个插入每页顶部的标题视图。

创建您在每页底部插入的页脚视图。

让你的内容在中间。

我在这里制作了一个平面文件,但你很容易想象它会重构为includes,或者你的应用程序需要什么。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00FF00" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="100dip"
        android:layout_alignParentTop="true"
        android:background="#FF0000" />

    <!-- Your content -->

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="100dip"
        android:layout_alignParentBottom="true"
        android:background="#0000FF" />

</RelativeLayout>
  • 红色=标题
  • 绿色=瓷砖(将从您的主题继承)
  • 蓝色=页脚

enter image description here

答案 2 :(得分:0)

尝试这样的事情:

使用android:gravity="TOP""BOTTOM"的两个布局中的顶部和底部。这两个布局设置为android:background="@drawable/xxx.png"

对于中心,要么使用您的解决方案,要么使用ScrollView。