在Android中使用ImageView以XML格式化图像

8 xml android tiling image

我试图在背景上得到一个图像,直到背景已满.

我目前的代码是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:src="@drawable/cartoonclouds"
    android:contentDescription="@string/desc"
    android:tileMode="repeat" />
  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text="@string/hello" />
  </LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

然而,这只是使图像覆盖(而不是平铺)从下到上,但不是从左到右.我该怎么办?

编辑:尝试XML版本:

<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:tileMode="repeat"
    android:src="@drawable/cartoonclouds" />
Run Code Online (Sandbox Code Playgroud)

main.xml可以在SAME文件夹中找到该XML文件中的cartooncloud,但找不到该XML文件.

Bru*_*ira 33

首先,将图像放在res/drawable/cloud.png等文件中.这使您的应用程序可以作为@ drawable/cloud访问.但它还没有瓦片.

接下来,您应该使用android定义位图资源(1):tileMode ="repeat".例如,您可以在mytileablebitmap.xml上定义它:

<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:tileMode="repeat" 
android:src="@drawable/cloud"/>
Run Code Online (Sandbox Code Playgroud)

这是引用您的原始图块图像(可绘制/云)并使Drawable知道如何平铺自己以填充可用空间.

然后,当您想要使用平铺背景时,请使用"@ drawable/mytileablebitmap".

(1):http://developer.android.com/guide/topics/resources/drawable-resource.html

  • 哦,我发现如果想要在ImageView中使用这个平铺drawable,那么我发现有必要将它的`ScaleType`设置为`fitXY`.我还改变了位图drawable - 将`android:gravity`设置为`fill_vertical`,我需要沿着Y轴耕作,以及`fill_horizo​​ntal`,我需要沿着X轴耕作.这可能对某人有帮助. (7认同)
  • 好吧,我做了你说的话; 在我的main.xml中它识别`@ drawable/cloud`但不存在`@ drawable/mytileablebitmap`,两者都存在,一个为.jpg,另一个为.xml.(在XML文件中给我一个错误) (2认同)