2012-01-17 36 views
6

Tôi đang cố gắng tải hình ảnh ở chế độ nền để lát cho đến khi nền đầy.Hình ảnh lát gạch trong android bằng ImageView trong XML

mã hiện tại của tôi là:

<?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> 

Tuy nhiên điều đó chỉ làm cho hình ảnh bao gồm (không lát gạch) dưới lên trên, nhưng KHÔNG trái sang phải. Tôi nên làm gì đây?

Edit: Đã cố gắng phiên bản XML:

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

Các main.xml thể tìm thấy cartoonclouds trong thư mục tương tự như tập tin XML, nhưng không thể tìm thấy tập tin XML.

Trả lời

32

Trước tiên, đặt hình ảnh của bạn vào một tệp như res/drawable/cloud.png. Điều này giúp ứng dụng của bạn có thể truy cập dưới dạng @ drawable/cloud. Nhưng nó không gạch (chưa).

Tiếp theo, bạn nên xác định tài nguyên bitmap (1) bằng android: tileMode = "repeat". Ví dụ, bạn có thể xác định nó trên mytileablebitmap.xml:

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

này được tham khảo Hình ảnh tiêu đề ban đầu của bạn (drawable/cloud) và thực hiện một drawable mà biết làm thế nào để bản thân ngói để lấp đầy khoảng trống.

Sau đó, khi bạn muốn sử dụng nền lát gạch, hãy sử dụng "@ drawable/mytileablebitmap".

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

+2

Ok, tôi đã làm những gì bạn nói, tuy nhiên; trong tệp main.xml của tôi, nó nhận ra '@ drawable/cloud' nhưng không thể' @ drawable/mytileablebitmap' khi cả hai tồn tại, một là .jpg và một là .xml. (cung cấp cho tôi một lỗi trong tệp XML) –

+5

Ồ, và tôi thấy rằng nếu ý tưởng này là sử dụng tính năng vẽ này trong ImageView, thì tôi thấy cần thiết đặt nó là 'ScaleType' thành' fitXY'. Tôi cũng đã thay đổi bản đồ bitmap có thể vẽ - đặt 'android: gravity' thành' fill_vertical', nơi tôi cần tilling dọc theo trục Y và 'fill_horizontal', nơi tôi cần tilling dọc theo trục X. Điều đó có thể giúp ai đó. – nemesisfixx

+0

@nemesisfixx: ScaleType cho fitXY là phần duy nhất mà tôi bị thiếu. Đây là một trong những điểm quan trọng nhất! –

Các vấn đề liên quan