2010-07-18 35 views
38

tôi xác định một drawableCách sử dụng hình dạng XML có thể vẽ được?

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http//schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
    <solid android:color="#ffffffff" /> 
    <size android:width="60dp" 
     android:height="40dp" /> 
</shape> 

Nhưng làm thế nào để sử dụng nó trong định nghĩa layout?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       > 
    <ImageView 
     android:src="@drawable/ic_title" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     /> 
</LinearLayout> 

Tôi vẫn chỉ thấy nền đen.

được sửa đổi:

Hóa ra tôi đã bỏ lỡ một : trong tờ khai drawablexmlns. Bây giờ ví dụ này hoạt động trong thiết bị Gingerbread :)

+0

Câu hỏi ngớ ngẩn, nhưng là 'ic_title' tên của bạn có thể vẽ được không? Ngoài ra, bạn có thể đặt 'android: background' trên' LinearLayout' –

+0

có, ic_title là ký tự tôi đã xác định ở trên. Tôi không muốn đặt android: background, đó không phải là hiệu ứng mong muốn. Tôi có thể đặt thêm ImageView vào LinearLayout. –

Trả lời

14

Tôi đã có một vấn đề tương tự và thấy rằng nếu bạn loại bỏ các định nghĩa kích thước, nó hoạt động vì một lý do nào đó.

Remove:

<size 
    android:width="60dp" 
    android:height="40dp" /> 

từ hình dạng.

Hãy cho tôi biết nếu công trình này hoạt động!

+0

Nhưng một hình dạng không có định nghĩa kích thước, nó giống như điền vào nền của ImageView. –

+0

Đúng. Sau đó, tôi giả định rằng bạn cần một vùng chứa để giữ chế độ xem hình ảnh đó, kích thước của nó là kích thước của riêng bạn - đó là ví dụ của tôi - nghĩa là tôi khai báo bố cục tương đối với kích thước và sau đó chỉ cần đặt imageView của tôi bên trong . – sonnyd

+7

Haha! Tôi tìm thấy vấn đề của bạn: D Tôi hy vọng bạn cho tôi kudo đầu tiên của tôi cho việc này;) Bạn có một Typo trong định nghĩa hình dạng của bạn. Hãy xem thông tin sau đây và phát hiện dấu ":" bị thiếu sau http: "http // schemas.android.com/apk/res/android" – sonnyd

20

Trong drawable tôi sử dụng mã xml này để xác định biên giới và nền:

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="4dp" android:color="#D8FDFB" /> 
    <padding android:left="7dp" android:top="7dp" 
    android:right="7dp" android:bottom="7dp" /> 
    <corners android:radius="4dp" /> 
    <solid android:color="#f0600000"/> 
</shape> 
Các vấn đề liên quan