2012-12-21 154 views
1

我想將我的佈局背景設置爲具有頂部邊框(不透明)的半透明顏色。我試圖做到這一點。目前我繪製的文件看起來像如下:在Android上的半透明形狀上繪製頂部邊框

<?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="#FF0000FF" /> 
     </shape> 
    </item> 
    <item android:top="5dp"> 
     <shape> 
      <solid android:color="#7F000000" /> 
     </shape> 
    </item> 
</layer-list> 

但在這個XML半透明狀的推移非透明狀,因此結果是不是半透明的。你能幫我取得我想要的背景嗎? 在此先感謝。

+0

你有沒有嘗試設置一個固定大小使用標籤藍色不透明的矩形,具有高度5DP? – Jorge

+0

我剛試過,但沒有奏效。 –

回答

0

在搜索完網頁並試圖找到正確的解決方案之後,我終於從聊天中的傢伙那裏得到了答案。解決方法是在第一個頂部創建一個layout,例如給它一個高度爲10dp,寬度爲match_parent


下面是工作示例:

activity_main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/MainLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/main_bg" 
    android:orientation="vertical" 
    android:padding="5dp" 
    tools:context=".MainActivity" > 

    <LinearLayout 
     android:id="@+id/Box" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/background" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:id="@+id/Border" 
      android:layout_width="match_parent" 
      android:layout_height="10dp" 
      android:layout_weight="0.64" 
      android:background="@drawable/border" 
      android:orientation="vertical" 
      tools:ignore="InefficientWeight" > 

     </LinearLayout> 

     <TextView 
      android:id="@+id/Content" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.64" 
      android:padding="5dp" 
      android:text="@string/example" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textColor="@color/white" /> 
    </LinearLayout> 

</LinearLayout> 

main_bg.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:top="5dp"> 
     <shape> 
      <solid android:color="#FF990000" /> 
     </shape> 
    </item> 
</layer-list> 

background.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:top="5dp"> 
     <shape> 
      <solid android:color="#55000000" /> 
     </shape> 
    </item> 
</layer-list> 

border.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:top="5dp"> 
     <shape> 
      <solid android:color="#FFFF0000" /> 
     </shape> 
    </item> 
</layer-list> 

的strings.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string name="app_name">Transparent Views</string> 
    <string name="action_settings">Settings</string> 
    <string name="hello_world">Hello world!</string> 
    <string name="example">Content &#8230;</string> 
    <color name="white">#FFFFFFFF</color> 

</resources> 

希望這將是有用的人別的也一樣。

0

這是一個簡單的解決方案。

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

    <item android:left="-5dp" android:bottom="-5dp" android:right="-5dp"> 
     <shape android:shape="rectangle"> 
      <stroke android:width="5dp" android:color="@color/borderColor" /> 
      <solid android:color="@color/backgroundColor" /> 
     </shape> 
    </item> 

</layer-list> 
相關問題