0

我创建了类似于这样的布局:

<RelativeLayout     
    android:id="@+id/layout_one" 
    style="@style/layout_one" >

    <RelativeLayout 
        android:id="@+id/layout_two"
        style="@style/layout_two" >

    <RelativeLayout 
        android:id="@+id/layout_three"
        style="@style/layout_three" >

    </RelativeLayout>
</RelativeLayout>

对于布局一,我创建了一个具有矩形形状的自定义可绘制对象,以便角落是圆形的和蓝色背景颜色。

但是对于布局三,我需要设置白色背景颜色,但如果我这样做android:background="#FFFFFF"了,它也会改变形状,并且底角不再是圆形的。

我的第一个想法是为带有圆底角的 layout_three 创建自定义可绘制对象,但它不起作用。要么所有的角落都是圆形的,要么没有。

需要在带有圆角的图片中创建类似的东西。有什么建议么?

带圆角和两种颜色的布局

4

3 回答 3

1

我看到对于布局三,您使用与@style/layout_one 不同的@style/layout_three。那么你为什么不去你的样式文件夹并将背景为白色的项目放在 layout_three 样式中

它应该看起来像这样:

<style name="layout_three">
      <item name="android:background">#FFFFFF</item>
      <!-- ... other stuff here... -->
</style>

编辑:对不起,我没有很好地理解您的问题,现在阅读该评论。我现在想到的只有一种方法可以帮助您解决这个问题。

在您的可绘制文件夹中创建一个 .xml 文件并将其命名为 layout_three.xml 或其他名称。并使用此代码:

<?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="#FFFFFF" />
    <padding
        android:bottom="10dp"  <!--  you can set padding here 
                                 or on your layout layout_three -->
        android:left="10dp"
        android:right="10dp"
        android:top="10dp"  
    />

    <corners android:radius="2dp" /> <!-- change the radius too -->
</item>
</layer-list>

然后你只需使用 @drawable/layout_three 而不是 @style/layout_three

EDIT2:如果您只希望底部圆角,您也可以将此代码用于拐角

<corners 
     android:topRightRadius="0dp"
     android:topLeftRadius="0dp"
     android:bottomLeftRadius="2dp"
     android:bottomRightRadius="2dp"/>
于 2013-07-28T13:49:16.363 回答
0

您可以根据您的要求创建一个带有圆底角的 xml 可绘制对象。试试下面的代码:

<item>
 <shape android:shape="rectangle" >
  <solid android:color="#FFFFFF" />
  <corners android:radius="7dp"
     android:topRightRadius="0dp"
     android:topLeftRadius="0dp"
     android:bottomLeftRadius="7dp"
     android:bottomRightRadius="7dp"/>
 </shape>
</item>
于 2013-07-29T06:43:00.103 回答
0

我刚刚读到问题在于 Android 布局预览没有显示不同的角半径,因此您必须在设备或模拟器上进行测试才能看到差异。

于 2013-07-29T07:56:19.070 回答