2016-04-27 45 views
9

自定义形状的LinearLayout与弯曲身边,我想使字形的LinearLayout像下面android系统

enter image description here

我试图让只有一侧弯曲的自定义。尝试角落半径,但它没有提供与上面相同的外观。

已经尝试过这样的背景形状如下: -

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

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

    <corners 
     android:bottomLeftRadius="50dp" 
     android:bottomRightRadius="50dp" 
     android:topLeftRadius="0dp" 
     android:topRightRadius="0dp" /> 
</shape> 

只四舍五入的角落和保值增值形状不保留它变得太圆。我想要的曲线,而不是圆角

+0

你可以用这个弧形灯罩创建图像,并可以添加Layout'的'背景。 –

+0

我不确定它是否会在所有分辨率上看起来一样,所以我避免了这一点。会吗? –

+0

您可以将dimen用于所有决议并使其轻松工作。 –

回答

-1

您可以在后台应用图像

+0

任何链接如何使图像可以在所有分辨率下工作? –

0

您可以设置维度的价值-dimension.xml FIME然后将其设置在你的LinearLayout的XML将会给下面这个样子

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<solid 
    android:color="#FFFF00" /> 
<padding android:left="7dp" 
    android:top="7dp" 
    android:right="7dp" 
    android:bottom="7dp" /> 

只是让你绘制一个XML文件中设置u需要的dimensio,然后通过你的线性布局

+0

对不起,但你能举个例子吗?我不确定你在说什么尺寸 –

4

创建文件夹绘制例如形状文件调用它:my_shape.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
    <corners 
     android:bottomLeftRadius="100dp" 
     android:bottomRightRadius="100dp" 
     android:topLeftRadius="0dp" 
     android:topRightRadius="0dp" /> 
    <padding 
     android:bottom="0dp" 
     android:left="0dp" 
     android:right="0dp" 
     android:top="0dp" /> 
    <stroke 
     android:width="0.5dp" 
     android:color="@color/theme_red" /> 
    <solid android:color="@color/white" /> 
</shape> 

然后在您的布局中添加此形状作为背景。 e.g:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/my_shape" 
    android:orientation="horizontal">    
</LinearLayout> 
+0

正如我所说我尝试添加radius.it看起来不像图像中的形状。我想要线条弯曲 –

+0

我认为你应该去背景图像。首先,根据需要设计图像。然后用它作为布局的背景 – Masum

+0

是的,你能建议任何分辨率开始在所有设备上看起来都一样吗? –

3

我所做的是 下面创建布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:background="#fefefe" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:background="@color/colorPrimary" 
     android:layout_height="110dp"> 
    </RelativeLayout> 

    <ImageView 
     android:layout_marginTop="85dp" 
     android:src="@drawable/allowaccess_button_normal" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" /> 


</RelativeLayout> 

enter image description here

1
<layer-lisxmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:top="175dp"> 

    <shape android:shape="oval"> 

    <gradient 
     android:angle="135" 
     android:startColor="#f56f2c" 
     android:endColor="#fa9f46"/> 

    </shape> 
    </item> 


    <item android:bottom="40dp"> 

    <shape android:shape="rectangle"> 

    <gradient 
     android:angle="135" 
     android:startColor="#f56f2c" 
     android:endColor="#fa9f46"/> 

    </shape> 
</item> 
</layer-list> 
0

可抽拉allowaccess_button_normal.xml

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

    <item> 
     <shape android:shape="oval"> 
      <solid android:color="@color/colorPrimary"/> 
     </shape> 
    </item> 

</selector> 

尝试它已经很晚了,但这是为未来的求职者。 我认为vector drawables是最完美的解决方案。使用下面的矢量as background来获得自定义形状的底部曲线布局。

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
android:width="24dp" 
android:height="24dp" 
android:viewportHeight="100.0" 
android:viewportWidth="200.0"> 
<path 
    android:fillColor="#YOUR_FAVORITE_COLOR" 
    android:pathData="M200,0H0v4.5h0v75.8h0c17.8,10.2 56,17.2 100.5,17.2c44.5,0 81.6,-7 99.5,-17.2h0V4.5h0V0z" />