2013-03-13 96 views
4

這裏是我的button_style.xml,包括我的按鈕。但是,我仍然無法看到左邊的邊框。有誰能幫我在這裏嗎?只有按鈕左側的邊框

PS - 我的背景應該是透明的

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <layer-list> 
      <item android:left="2dp"> 
       <shape android:shape="rectangle"> 
        <stroke 
         android:width="1dp" 
         android:color="#999999"/> 
       </shape> 
     </item> 
    </layer-list> 

</selector> 
+0

你試過'android:drawableLeft' – DjHacktorReborn 2013-03-13 06:54:39

+0

@DjHacktorReborn:'android:drawableLeft'不是解決方案。嘗試其中之一:http://stackoverflow.com/questions/2422120/open-sided-android-stroke或http://stackoverflow.com/questions/9211208/how-to-draw-border-on-just-one線性佈局 – 2013-03-13 06:56:09

回答

0
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <layer-list> 
      <item android:left="2dp" 
        android:right="0dp" 
        android:top="0dp" 
        android:bottom="0dp" 
        > 
       <shape android:shape="rectangle"> 
        <stroke 
         android:width="1dp" 
         android:color="#999999"/> 
       </shape> 
     </item> 
    </layer-list> 

</selector> 

試試這個它可能工作

+0

這不適用於我 – BurninatorDor 2013-03-13 09:28:57

+0

這不起作用,雖然左邊出現一個邊框,但即使底部出現一個邊框,即使bottom =「0dp 「 – 2013-10-10 03:58:24

+0

你有沒有試過真正的設備有時它可能不會顯示在模擬器上 – Syn3sthete 2013-10-17 06:47:43

0

試試這個

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape> 
      <padding android:left="1dp" /> 
      <solid android:color="#999999" /> 
     </shape> 
    </item> 
<item> 
    <shape android:shape="rectangle"> 
      <solid android:color="@android:color/transparent" /> 
    </shape> 
    </item> 
</layer-list> 
9

試試這個

<?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="@android:color/transparent" /> 
     </shape> 
    </item> 
    <item 
     android:bottom="-2dp" 
     android:right="-2dp" 
     android:top="-2dp"> 
     <shape> 
      <solid android:color="@android:color/transparent" /> 

      <stroke 
       android:width="2dp" 
       android:color="#FFF" /> 
     </shape> 
    </item> 

</layer-list> 
+0

任何人都可以告訴我'android:shape'屬性的目的,因爲我在刪除它後得到了相同的結果? – 2014-09-01 17:19:41

2

按鈕的邊框有一些繼承問題。但我找到了最好的辦法。假設你想只在按鈕左側有一個邊框。在按鈕被放置在MainActivity xml文件做這樣的 -

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

       <Button 
        android:id="@+id/button3" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:background="@null" 
        android:gravity="center_vertical" 
        android:paddingLeft="10sp" 
        android:text="Button" 
        android:textAllCaps="false" 
        android:textColor="#939393" 
        android:textSize="20sp" /> 
    </LinearLayout> 

對於將在繪製使用位於此代碼newstyle.xml文件 -

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

    <item 
     android:bottom="0sp" 
     android:left="-2sp" 
     android:right="-2sp" 
     android:top="-2sp"> 
     <shape android:shape="rectangle" > 
      <solid android:color="#ffffff" /> 

      <stroke 
       android:width="1sp" 
       android:color="#d6d6d6" /> 
     </shape> 
    </item> 
</layer-list> 

所以整個想法是 - 保持按鈕的背景爲@null並將按鈕保持在linera佈局中。給背景的襯墊佈局和瞧,它完成.. :) ..