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>

レイアウト 1 では、角が丸く、背景色が青色になるように、長方形のカスタム ドローアブルを作成しました。

しかし、レイアウト 3 では、白い背景色を設定する必要がありますがandroid:background="#FFFFFF"、そうすると形状も変化し、下の角が丸くなりません。

私の最初の考えは、丸みを帯びた下隅を持つlayout_three用のカスタムドローアブルを作成することでしたが、うまくいきませんでした。すべての角が丸くなっているか、丸みがありません。

丸みを帯びた角を持つ写真でこのようなものを作成する必要があります。助言がありますか?

角を丸くした2色のレイアウト

4

3 に答える 3

1

レイアウト 3 では、@style/layout_one とは異なる @style/layout_three を使用しているようです。スタイルフォルダーに移動して、背景が白のアイテムをlayout_threeスタイルに入れてみませんか

次のようになります。

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

編集:申し訳ありませんが、あなたの質問をよく理解していませんでした。今そのコメントを読んでいます。あなたがそれを修正するのを助けるために今私の頭に浮かぶ唯一の方法があります.

drawable フォルダーに .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>

そして、 @style/layout_three の代わりに @drawable/layout_three を使用するだけです

EDIT2:下の角だけを丸くしたい場合は、角にこのコードを使用することもできます

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

問題は、Android レイアウト プレビューに異なる角の半径が表示されないため、デバイスまたはエミュレータでテストして違いを確認する必要があることです。

于 2013-07-29T07:56:19.070 に答える
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 に答える