最近在做IM消息,遇到需要做个气泡样式,在此记录下。
先上效果图:
一般实现思路:
- 可以使用.9图片实现该效果
- 通过drawable绘制三角形和圆角矩形通过拼接来实现该效果
本文在第2条基础上利用 drawable的layer-list属性,通过叠拼实现单个drawable文件实现气泡样式。
实现代码:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<layer-list>
<item android:left="8dp">
<shape>
<corners android:radius="4dp" />
<solid android:color="@color/white" />
</shape>
</item>
</layer-list>
</item>
<item
android:gravity="left|top"
android:top="15dp">
<rotate
android:fromDegrees="45"
android:pivotX="50%"
android:pivotY="135%">
<shape android:shape="rectangle">
<size
android:width="8dp"
android:height="8dp" />
<solid android:color="@color/white" />
</shape>
</rotate>
</item>
</layer-list>