2011-07-11 27 views
14

Làm thế nào tôi có thể tạo loại gradient có thể vẽ này bằng XML?Làm thế nào để tạo một gradient kép với XML (giống như iphone)

Double gradient image

tôi có thể làm một gradient đơn giản từ màu A đến B màu nhưng tôi không biết làm thế nào để kết hợp hai gradient trong drawable cùng.

+1

thể trùng lặp của [hình Multi-Gradient] (http://stackoverflow.com/questions/4381033/multi-gradient-shapes) – grunk

+0

Xong, nhờ gợi ý nó – grunk

Trả lời

12

cuối cùng tôi đã tìm thấy một giải pháp với một lớp-list đó là đủ tốt cho tôi:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- First part is a gradient --> 
    <item android:left="0dp" android:right="0dp"> 
     <shape android:shape="rectangle"> 

      <gradient android:angle="-90" android:startColor="#9dcbf6" 
       android:endColor="#177ee6" /> 

     </shape> 
    </item> 
    <!-- Second part is plain color. Slightly transparent --> 
    <item android:top="1sp" android:bottom="20sp" > 
     <shape android:shape="rectangle"> 
      <solid android:color="#10ffffff"/> 
     </shape> 

    </item> 
</layer-list> 

trung được thiết lập đến 20 sp vì container có chiều cao 40sp, nhưng bạn có thể điều chỉnh theo ý muốn của bạn bằng cách chỉnh sửa: android:bottom="20sp"

11

Bạn có thể có ba màu theo độ dốc. Màu bắt đầu, màu kết thúc và màu trung tâm.

<gradient 
     android:angle="integer" 
     android:centerX="integer" 
     android:centerY="integer" 
     android:centerColor="integer" 
     android:endColor="color" 
     android:gradientRadius="integer" 
     android:startColor="color" 
     android:type=["linear" | "radial" | "sweep"] 
     android:usesLevel=["true" | "false"] /> 

Hoặc bạn có thể sử dụng LayerList Drawable và chỉ ghép chúng lại với nhau.

+0

Cám ơn câu trả lời của bạn, nhưng sử dụng centerColor dường như không phải là giải pháp. Nhìn vào câu hỏi của tôi một lần nữa, tôi thêm một số thông tin – grunk

+0

Sau đó, bạn sẽ phải chuyển sang nửa thứ hai của có thể trả lời và thực hiện hai gradient và sử dụng một LayerList. – CaseyB

+0

Dường như không thể điều chỉnh hình dạng dễ dàng đến 50% chiều cao. tôi có lẽ sẽ sử dụng một hình ảnh căng ra. Cảm ơn vì đã dành thời gian cho tôi. – grunk

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