2013-07-28 31 views
0

我已經創建的佈局與此類似:Android的換色不改變形狀

<RelativeLayout  
    android:id="@+id/layout_one" 
    style="@style/layout_one" > 

    <RelativeLayout 
     android:id="@+id/layout_two" 
     style="@style/layout_two" > 

    <RelativeLayout 
     android:id="@+id/layout_three" 
     style="@style/layout_three" > 

    </RelativeLayout> 
</RelativeLayout> 

對於佈局一個我已經創建了矩形形狀的自定義繪製,以致於拐角都將取整和藍色背景顏色。

但是,對於佈局三,我需要設置白色背景顏色,但如果我做了android:background="#FFFFFF"比它也改變形狀和底角不再圓整。

我的第一個想法是創建具有圓角底部的layout_three的自定義drawable,但它沒有工作。要麼所有的角落都是圓形的或者沒有。

需要在圓角的圖片中創建類似的東西。有什麼建議麼?

Layout with rounded corners and two colors

+0

第二個'RelativeLayout'是什麼?自定義drawable是要走的路,你只能做出圓角的底角。 – Luksprog

+0

但我不能只將角半徑設置爲0,最低爲50dp。它不這樣工作。 – Karlis

+0

您可以繪製一個只有一些圓角的可繪製形狀。 *它不會這樣工作* - 這根本沒有幫助。您可能想要發佈完整的佈局文件+繪圖。 – Luksprog

回答

1

我看到佈局你們三個使用@風格/ layout_three這是從@風格/ layout_one不同。那麼,爲什麼不去找你的風格的文件夾,並把項目與layout_three風格背景白色

它應該是這個樣子:

<style name="layout_three"> 
     <item name="android:background">#FFFFFF</item> 
     <!-- ... other stuff here... --> 
</style> 

編輯:對不起,我不明白你的問題很好,閱讀現在的評論。 現在只有一種方法可以幫助您解決這個問題。

在您的可繪製文件夾中創建一個.xml文件,並將其命名爲layout_three.xml或其他。 並使用此代碼:

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

<item> 
<shape android:shape="rectangle" > 
    <solid android:color="#FFFFFF" /> 
    <padding 
     android:bottom="10dp" <!-- you can set padding here 
           or on your layout layout_three --> 
     android:left="10dp" 
     android:right="10dp" 
     android:top="10dp" 
    /> 

    <corners android:radius="2dp" /> <!-- change the radius too --> 
</item> 
</layer-list> 

然後你只需要使用@繪製/ layout_three代替@風格/ layout_three

EDIT2:如果你只想要一個底部,您還可以使用此代碼爲角被舍入

<corners 
    android:topRightRadius="0dp" 
    android:topLeftRadius="0dp" 
    android:bottomLeftRadius="2dp" 
    android:bottomRightRadius="2dp"/> 
+0

正如我所提到的那樣,背景形狀發生變化,底部不再圓潤! – Karlis

0

您可以創建一個帶圓角底部的xml drawable來滿足您的要求。試試下面的代碼:

<item> 
<shape android:shape="rectangle" > 
    <solid android:color="#FFFFFF" /> 
    <corners android:radius="7dp" 
    android:topRightRadius="0dp" 
    android:topLeftRadius="0dp" 
    android:bottomLeftRadius="7dp" 
    android:bottomRightRadius="7dp"/> 
</shape> 
</item> 
0

我剛纔讀的問題是,Android的佈局預覽不會顯示不同的角半徑,所以你必須測試在設備或模擬器看出區別。