2010-02-21 28 views
8

Tôi đang cố gắng tạo một hình vẽ trong xml, hình chữ nhật có một đường viền ở nửa trên cùng và một hình khác ở nửa dưới. Đây không phải là cách để làm điều đó, rõ ràng:Tạo một hình chữ nhật có thể vẽ trong xml với một gradient ở nửa trên và một ở nửa dưới

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
       <gradient 
         android:startColor="#5a5a5a88" 
         android:endColor="#14141488" 
         android:angle="270" android:centerX="0.25"/> 

     </shape> 
    </item> 
    <item> 
     <shape android:shape="rectangle" android:top="80px"> 
       <gradient 
         android:startColor="#5aff5a88" 
         android:endColor="#14ff1488" 
         android:angle="270" android:centerX="0.25"/> 

     </shape> 
    </item> 
</layer-list> 

Làm cách nào để làm điều này, tốt nhất là làm cho nó có thể vươn tới bất kỳ độ cao nào?

Trả lời

8

Nếu mục tiêu của bạn là để có một gradient với một màu trung ương (bắt đầu từ màu A, chuyển tiếp đến B ở giữa, sau đó chuyển tiếp đến C ở cuối), thêm android:centerColorandroid:centerY thuộc tính cho một trong <shape> yếu tố của bạn và nuke khác. Bạn có thể làm gradient ba màu tất cả trong một hình dạng duy nhất.

+0

Thực ra, tôi muốn hai lĩnh vực khác nhau của màu sắc ... do đó, nó sẽ không thực sự chuyển sang màu khác ở cuối. Ở giữa, nó sẽ bắt đầu với một màu hoàn toàn khác và chuyển sang màu khác ở cuối. – synic

+0

Vậy tại sao bạn cần tất cả trong một 'Có thể vẽ được'? '' không phải là một 'LinearLayout' - chúng không chồng theo chiều dọc. – CommonsWare

+0

Tôi cần tất cả trong một bản vẽ vì tôi muốn sử dụng nó làm nền cho LinearLayout. – synic

0

lỗi nhỏ cho bạn, thuộc tính hàng đầu phải ở trong thành phần item;)

nó làm việc:

<?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <gradient 
        android:startColor="#5a5a5a88" 
        android:endColor="#14141488" 
        android:angle="270" android:centerX="0.25"/> 

     </shape> 
    </item> 
    <item android:top="80dp"> 
    <shape android:shape="rectangle"> 
      <gradient 
        android:startColor="#5aff5a88" 
        android:endColor="#14ff1488" 
        android:angle="270" android:centerX="0.25"/> 

    </shape> 
</item> 
</layer-list> 
Các vấn đề liên quan