我有一张背景图片,分为三个单独的图片:
backgroundTop.png
backgroundMiddle.png
backgroundBottom.png
我如何在Android应用中实现背景,其中顶部图像显示在应用程序的顶部,底部图像显示在底部,中间图像在其间平铺?这当然取决于屏幕上加载了多少内容 - 就像在网页中一样。
换句话说,平铺中间图像的总次数取决于屏幕上的内容。
我在这里看到了从单个图片中实现平铺背景的解决方案:How to make android app's background image repeat
如果您使用的是单张图片,则可以正常使用,但不能使用多张图片。
链接到下面的示例,以便您知道我的意思:
http://rockfreaks.net/images/reviewPageTop.png
答案 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>
答案 2 :(得分:0)
尝试这样的事情:
使用android:gravity="TOP"
和"BOTTOM"
的两个布局中的顶部和底部。这两个布局设置为android:background="@drawable/xxx.png"
对于中心,要么使用您的解决方案,要么使用ScrollView。