2011-10-30 35 views
19

Làm cách nào tôi có thể định vị hình dạng hình tròn có hình tròn làm nền trong LinearLayout? Dưới đây là những gì tôi hiện có:Cách định vị nền gradient hướng tâm

Hình dạng:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient 
     android:endColor="#e6e6e6" 
     android:gradientRadius="800" 
     android:startColor="#fafaf9" 
     android:type="radial"/> 
</shape> 

Các LinearLayout:

<?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" 
    android:background="@drawable/accueil_bg_gradient"> 
</LinearLayout> 

Tôi chỉ muốn có độ dốc của tôi bắt đầu từ góc trên bên trái của màn hình, và kết thúc ở góc dưới bên phải.

Cảm ơn rất nhiều!

+0

Nếu bạn muốn thay đổi góc của gradient cố gắng sử dụng 'android: angle' trong < [gradient] (http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape)> phần tử. – m039

+0

Cảm ơn câu trả lời nhưng nó là một gradient xuyên tâm – alxscms

Trả lời

43

Bạn có thể di chuyển giữa gradient xuyên tâm ở một vị trí khác nhau của drawable sử dụng "centerX" và "centery" thuộc tính của gradient. Chúng là một giá trị dấu phẩy động nằm trong khoảng 0 đến 1.0 trong đó (giá trị của centerX, centerY tương ứng) 0,0 là góc trên bên trái và 1,1 là góc dưới cùng bên phải.

Mặc định là 0,5,0,5 là giữa không gian có thể vẽ/được gán. Ví dụ cho một 100px dài (bán kính), màu đen-trắng dốc mà giữa bắt đầu từ góc trên bên trái sẽ là:

<shape android:shape="rectangle"> 
     <gradient 
      android:type="radial" 
      android:startColor="#ffffff" 
      android:endColor="#000000" 
      android:gradientRadius="100" 
      android:angle="270" 
      android:centerX="0" 
      android:centerY="0"/> 

    </shape> 
-1

bộ này như mybackground.xml nền:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item> 
     <shape android:shape="rectangle" android:layout_width="wrap_content"> 
      <stroke android:width="10dp" android:color="@color/darkBlue" /> 
      <solid android:color="#00000000" /> 
      <padding android:left="1dp" android:top="1dp" android:right="1dp" 
       android:bottom="1dp" /> 
     </shape> 
    </item> 

    <item> 
     <shape android:shape="rectangle"> 
      <gradient android:startColor="@color/grayBlue" 
       android:endColor="@color/lightBlue" android:angle="270" 
       android:centerColor="@color/lightBlue" /> 
      <!-- border width and color --> 
      <stroke android:width="1dp" android:color="#FFDDDDDD" /> 
      <padding android:left="10dp" android:top="8dp" android:right="10dp" 
       android:bottom="8dp" /> 
     </shape> 
    </item> 

</layer-list> 
+0

Xin chào, cảm ơn nhưng mã bạn đã cho tôi là cho một gradient tuyến tính, nhưng tôi muốn có một gradient xuyên tâm với trung tâm ở góc trên bên trái và kết thúc ở bên phải thấp hơn góc – alxscms

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