私は見栄えの良いドロアブルでチャットバブルを作成しましたが、3D効果を作るためにドロアブルの下にシャドウ効果を追加したいのですが、9ピッチのイメージを使用したくありません。このドロウアブルにシャドウ効果を追加する方法を知りたいだけです。私のコードは
---- right_bubble_chat_drawable
<?xml version="1.0" encoding="utf-8"?>
<shape Android:shape="rectangle" xmlns:Android="http://schemas.Android.com/apk/res/Android">
<corners Android:radius="15dp" />
<solid Android:color="@color/chatrightbubbleColor" />
<padding
Android:bottom="10dp"
Android:left="10dp"
Android:right="10dp"
Android:top="10dp" />
<size
Android:height="@dimen/normal_button_height"
Android:width="@dimen/normal_button_width" />
---コーナーポインター「chat_laftarraow」
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item >
<rotate
Android:fromDegrees="90"
Android:toDegrees="-90"
Android:pivotX="50%"
Android:pivotY="50%" >
<rotate
Android:fromDegrees="45"
Android:toDegrees="45"
Android:pivotX="-40%"
Android:pivotY="86%" >
<shape
Android:shape="rectangle" >
<stroke Android:color="#00aaef" Android:width="1dp"/>
<solid
Android:color="#00aaef" />
</shape>
</rotate>
</rotate>
</item>
</layer-list>
-------私はそれらを次のように使用しています
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
<View
Android:id="@+id/left_chatArror"
Android:layout_width="20dp"
Android:layout_height="20dp"
Android:layout_alignParentRight="true"
Android:layout_marginTop="6dp"
Android:background="@drawable/chat_laftarraow"/>
<RelativeLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:maxWidth="220dp"
Android:layout_marginRight="-3dp"
Android:orientation="horizontal"
Android:layout_toLeftOf="@+id/left_chatArror"
Android:paddingBottom="5dp"
Android:paddingTop="5dp"
Android:background="@drawable/right_bubble_chat_drawable">
</RelativeLayout>
</RelativeLayout>
下の画像のように、バブルの下にシャドウ効果を追加する方法を教えてください
LinearLayoutの背景として機能するレイヤーリストを実装して、この中にview
を追加してみてください。
Background_with_shadow.xmlファイルを
res/drawable
に追加します。含む:<?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="@Android:color/darker_gray" /> <corners Android:radius="5dp"/> </shape> </item> <item Android:right="1dp" Android:left="1dp" Android:bottom="2dp"> <shape Android:shape="rectangle"> <solid Android:color="@Android:color/white"/> <corners Android:radius="5dp"/> </shape> </item> </layer-list>
次に、LinearLayoutで背景としてレイヤーリストを追加します。
<LinearLayout Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:background="@drawable/background_with_shadow"/>
[〜#〜] edit [〜#〜]
Thsisのようなグレー画像を作成するために、別のxmlを作成できます。
---- right_bubble_shdw_chat_drawable
<?xml version="1.0" encoding="utf-8"?>
<shape Android:shape="rectangle" xmlns:Android="http://schemas.Android.com/apk/res/Android">
<corners Android:radius="15dp" />
<solid Android:color="@Android:color/darker_gray" />
<padding
Android:bottom="10dp"
Android:left="10dp"
Android:right="10dp"
Android:top="10dp" />
<size
Android:height="@dimen/normal_button_height"
Android:width="@dimen/normal_button_width" />
---コーナーポインター「chat_laftarraow_shdw」
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item >
<rotate
Android:fromDegrees="90"
Android:toDegrees="-90"
Android:pivotX="50%"
Android:pivotY="50%" >
<rotate
Android:fromDegrees="45"
Android:toDegrees="45"
Android:pivotX="-40%"
Android:pivotY="86%" >
<shape
Android:shape="rectangle" >
<stroke Android:color="@Android:color/darker_gray" Android:width="1dp"/>
<solid
Android:color="@Android:color/darker_gray" />
</shape>
</rotate>
</rotate>
</item>
</layer-list>
-------私はそれらを次のように使用しています
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
<View
Android:id="@+id/left_chatArror"
Android:layout_width="20dp"
Android:layout_height="20dp"
Android:layout_alignParentRight="true"
Android:layout_marginTop="6dp"
Android:background="@drawable/chat_laftarraow"/>
<RelativeLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:maxWidth="220dp"
Android:layout_marginRight="-3dp"
Android:orientation="horizontal"
Android:layout_toLeftOf="@+id/left_chatArror"
Android:paddingBottom="5dp"
Android:paddingTop="5dp"
Android:background="@drawable/right_bubble_chat_drawable">
</RelativeLayout>
<View
Android:id="@+id/left_chatArrorShdw"
Android:layout_width="20dp"
Android:layout_height="20dp"
Android:layout_alignParentRight="true"
Android:layout_marginTop="15dp"
Android:background="@drawable/chat_laftarraow_shdw"/>
<RelativeLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:maxWidth="220dp"
Android:layout_marginRight="-3dp"
Android:orientation="horizontal"
Android:layout_toLeftOf="@+id/left_chatArror"
Android:paddingBottom="5dp"
Android:paddingTop="5dp"
Android:background="@drawable/right_bubble_shdw_chat_drawable">
</RelativeLayout>
このdrawable/shadow.xmlファイルを使用しています
<!-- Drop Shadow Stack -->
<item>
<shape>
<padding
Android:bottom="1dp"
Android:left="1dp"
Android:right="1dp"
Android:top="1dp" />
<solid Android:color="#00CCCCCC" />
<corners Android:radius="3dp" />
</shape>
</item>
<item>
<shape>
<padding
Android:bottom="1dp"
Android:left="1dp"
Android:right="1dp"
Android:top="1dp" />
<solid Android:color="#10CCCCCC" />
<corners Android:radius="3dp" />
</shape>
</item>
<item>
<shape>
<padding
Android:bottom="1dp"
Android:left="1dp"
Android:right="1dp"
Android:top="1dp" />
<solid Android:color="#20CCCCCC" />
<corners Android:radius="3dp" />
</shape>
</item>
<!-- Background -->
<item>
<shape>
<solid Android:color="@Android:color/white" />
<corners Android:radius="3dp" />
</shape>
</item>
注:-ルートレイアウトはレイヤリストである必要があります。その中にアイテムを追加します。