2014-09-10 97 views
2

我有这样的LinearLayout:与圆角XML形状面膜布局

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <ImageView 
     android:layout_width="100dp" 
     android:layout_height="70dp" 
     android:src="@drawable/ic_launcher" 
     android:scaleType="centerCrop"/> 

    <TextView 
     android:layout_width="100dp" 
     android:layout_height="30dp" 
     android:background="#FFD800" 
     android:textColor="@android:color/black" 
     android:gravity="center" 
     android:text="Text View"/> 
</LinearLayout> 

enter image description here

而且我想用圆角来掩盖它,就像这样:

enter image description here

我试图把它放在一个FrameLayout中,并在其上面放置shape.xml,

但我得到的最多的是:

enter image description here

enter image description here

我正在寻找一种方式来使用shape.xml背景,

但随着透明内边界和外面的白色。

我shape.xml:

<shape 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<solid 
    android:color="#FFFFFF"> 
</solid> 

<stroke 
android:width="2dp" 
android:color="#000000" > 
</stroke> 

<padding 
    android:left="5dp" 
    android:top="5dp" 
    android:right="5dp" 
    android:bottom="5dp"> 
</padding> 

<corners 
    android:radius="50dp"> 
</corners> 
</shape> 
+0

你想用圆角xml掩饰整个布局吗?请发布您的整个XML布局文件代码。 – GrIsHu 2014-09-10 11:11:55

+0

@GrlsHu是的,我想用角落xml掩盖整个布局。 (添加我的布局) – David 2014-09-10 12:04:09

+0

看看我的答案。 @David – GrIsHu 2014-09-10 12:19:56

回答

3

创建一个九宫白色圆角外,中间透明,(“逆九宫”),并把它放在顶部您的LinearLayout尝试了。这是一种常见的做法。

+0

不知道这是否是最好的答案,但它是唯一真正有效的答案。谢谢。 – David 2014-09-10 12:31:13

0

让你的布局的背景是这样的:android:background="@drawable/shape"

0

刚刚从你的形状删除<solid>标签。然后将该形状应用于您的LinearLayout的背景。

因为<solid>标记指定了形状的填充颜色。 没有这个标签,你的形状的中心将是完全透明的。 所以它看起来就像一个边框。

0

下面的xml文件

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

    <stroke 
     android:width="1dp" 
     android:color="#4a6176" /> 

    <padding 
     android:left="10dp" 
     android:right="10dp" 
     /> 

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

</shape> 
+0

它不起作用,内容与形状重叠。 – David 2014-09-10 12:27:08