从Image或<linearlayout> / <gridview>等创建平铺背景</gridview> </linearlayout>

时间:2012-03-19 13:35:48

标签: android

我想知道作为一个新的Android开发人员(10年以上C#OOP),这将是创建简单重复背景的更好方法。无论屏幕尺寸,密度或方向如何,背景都将保持一致。我已经阅读了Android开发者开发指南,内容涉及支持多个屏幕,九个补丁绘图等等。我已经看过这样的教程(http://androidforbeginners.blogspot.com/2010/06/how-to-tile-background-image-in-android.html)告诉你如何使用图像并让它重复。

当然使用图像时,您必须为多个密度提供多个图像,否则可能会出现位图缩放和像素化的风险。对于复杂的背景模式,我可以看到这可能是怎么回事。但我的模式是一个简单的网格模式,所以不是有更好的方法只使用xml?

我查看了GridView和TableLayout,两者都允许我设置背景颜色,指定单元格宽度/高度,但我没有看到指定网格线颜色的方法。

目前我使用的是较旧的2.3.3 api,因为这是目前使用的最大版本。 我不怀疑我需要那些比我更了解的人提供一些好的建议。

谢谢 JB

1 个答案:

答案 0 :(得分:6)

您可以像这样创建一个drawable:

<?xml version="1.0" encoding="utf-8"?>

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="AndroidPuzzlesSolver/@drawable/bg_tile"
        android:tileMode="repeat"
        android:dither="true" />

将上述内容放在drawable文件夹中的“background.xml”文件中。然后你就可以在你的布局中使用它:

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

您可以使用所有布局的背景。

我认为没有一种开箱即用的方式来进行替代重复,例如:在某些地方展示一个图像,在另一些地方展示另一个图像。如果你想要这样的东西,那么你可能需要实现自己的View并覆盖onDraw方法。您可以使用FrameLayout将此背景视图与任何其他元素组合。