2015-08-19 90 views
3

我试图找出我怎么能创建一个形状,只有右边框透明:形状,只有一个透明边框

+ + + + + + + + 
+ 
+ 
+ 
+ + + + + + + + 

我想知道我怎么能做到这一点。目前,我有这代表了矩形只是我的基本形状,但是从这一点上,我不知道是否有可能做我想做的:

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

    <solid android:color="#07000000" /> <!-- Transparent background --> 


    <corners 
     android:topLeftRadius="10dp" 
     android:bottomLeftRadius="10dp" /> 
    <stroke 
     android:width="2dp" 
     android:color="@android:color/white" /> 
</shape> 
+0

使用九个补丁drawable为那种形状 – pskink

+0

是的,谢谢你。但实际上我想知道如果没有这个可能。 – AlexDG

+0

当然:你可以:使用具有自定义Shape类的'ShapeDrawable',但9patch是最简单的方法 – pskink

回答

3

的主要想法是隐藏你不想显示的行。由于您无权在shape本身内指定它,因此您必须使用layer-list并定义负填充以移动矩形,使右侧超出范围。无论如何,不​​是所有的角都可以看到,所有角落都是圆的也更好。试试这个代码:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:right="-10dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#07000000" /> 

      <corners android:radius="10dp" /> 

      <stroke 
       android:width="2dp" 
       android:color="@android:color/white"/> 
     </shape> 
    </item> 
</layer-list> 
+0

真的很高兴知道谢谢@Lamorak – AlexDG

0

尽量娄XML的

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <shape android:shape="rectangle"> 
     <solid android:color="#FF0000" /> 
    </shape> 
</item> 
<item android:left="5dp"> 
    <shape android:shape="rectangle"> 
     <solid android:color="#000000" /> 
    </shape> 
</item> 
</layer-list> 
+0

它没有用。我只有一个左边框,顶部,底部和右侧不可见。但是,感谢这个想法。 – AlexDG

+1

@Alex使用九种可修补的形状 – pskink