【问题标题】:Android App Background: using multiple imagesAndroid App Background:使用多张图片
【发布时间】:2012-05-02 20:47:58
【问题描述】:

我有一张背景图片,它被分成三个独立的图片:

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

【问题讨论】:

    标签: android background styles tile app-themes


    【解决方案1】:

    认为您可以尝试将layer list 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>
    

    但这完全取决于你的布局。

    【讨论】:

    • 我正在寻找解决不同问题的方法,您的回答也对我有帮助。在很多情况下使用 layer-list 是个好主意,谢谢分享!
    【解决方案2】:

    试试这样的:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      并将您的内容放在中间。

      我在这里把它做成了一个平面文件,但你可以很容易地想象将它重构为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>
      
      • 红色 = 标题
      • 绿色 = 瓷砖(将继承自您的主题)
      • 蓝色 = 页脚

      【讨论】:

      • 这几乎可以工作。问题是红色和蓝色部分只是在绿色背景的“顶部”。它没有按预期合并在一起,您可以清楚地看到背景图像顶部有两个图像。示例:peecee.dk/uploads/042012/device-2012-04-21-174830_big_thumb.png
      • 啊,但是你的资源就有问题了。如果您 9 修补页眉和页脚以定义可拉伸区域并以正确的平铺大小平铺中间,您应该让它们无缝集成。 理论上
      猜你喜欢
      • 2014-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多