2015-02-23 80 views
2

嗨我想为我的应用程序使用气泡作为背景图像。我碰到这张贴在这里在android中的气泡

Android drawable speech bubble

的例子来自我希望在我试图

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

    <item android:top="30dp"> 
     <rotate 
      android:fromDegrees="-45" 
      android:pivotX="0%" 
      android:pivotY="0%" 
      android:toDegrees="0" > 
      <shape android:shape="rectangle" > 
       <solid android:color="#CCC" /> 
      </shape> 
     </rotate> 
    </item> 
    <item android:right="10dp"> 
     <shape android:shape="rectangle" > 
      <solid android:color="#CCC" /> 

      <corners android:radius="5dp" /> 
     </shape> 
    </item> 

</layer-list> 

相反的方向来实现这个正确的方向开始,但我无法得到它的工作,任何帮助将不胜感激!

+1

http://warting.github.io/AndroidChatBubbles/ - 检查了这一点 – 2015-02-23 11:44:21

+0

,请使用9片图像,你的90%工作减少! – theLazyFinder 2015-02-23 12:03:46

+0

什么是创建9个补丁图像的最佳方式 – Sim 2015-02-23 12:09:49

回答

11

传入消息:

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

    <item> 
     <rotate 
      android:fromDegrees="-45" 
      android:pivotX="0%" 
      android:pivotY="0%" > 
      <shape android:shape="rectangle"> 
       <solid android:color="@color/chat_message_background_incoming" /> 
      </shape> 
     </rotate> 
    </item> 
    <item android:left="20dp"> 
     <shape 
      android:shape="rectangle"> 
      <solid android:color="@color/chat_message_background_incoming"/> 
      <corners 
       android:radius="1dp" 
       android:bottomLeftRadius="15dp" 
       android:bottomRightRadius="15dp" 
       android:topLeftRadius="5dp" 
       android:topRightRadius="15dp" /> 
     </shape> 
    </item> 

</layer-list> 

传出消息:

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

    <item> 
     <rotate 
      android:fromDegrees="45" 
      android:pivotX="100%" 
      android:pivotY="0%" > 
      <shape android:shape="rectangle"> 
       <solid android:color="@color/chat_message_background_outcoming" /> 
      </shape> 
     </rotate> 
    </item> 
    <item android:right="20dp"> 
     <shape 
      android:shape="rectangle"> 
      <solid android:color="@color/chat_message_background_outcoming"/> 
      <corners 
       android:bottomLeftRadius="15dp" 
       android:bottomRightRadius="15dp" 
       android:topLeftRadius="15dp" 
       android:topRightRadius="5dp" /> 
     </shape> 
    </item> 

</layer-list> 

希望,这将有助于

+0

谢谢你,我会尝试一下 – Sim 2015-02-23 21:26:25

+0

谢谢你,谢谢你 – 2016-09-23 11:46:45

+0

耶,谢谢你一直在寻找这个年龄 – 2017-11-23 14:12:41

0

传入气泡形状背景

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <rotate 
     android:fromDegrees="-45" 
     android:pivotX="100%" 
     android:pivotY="100%" 
     android:toDegrees="0" > 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/colorSendMessageBg" /> 
     </shape> 
    </rotate> 
</item> 
<item android:right="5dp"> 
<shape android:shape="rectangle" > 
    <solid android:color="@color/colorSendMessageBg" /> 
    <corners android:radius="5dp" /> 
</shape> 
</item> 
</layer-list> 

传出气泡形状BA ckground

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

<item> 
    <rotate 
     android:fromDegrees="45" 
     android:pivotX="0%" 
     android:pivotY="100%" 
     android:toDegrees="0" > 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/colorReciveMessageBg" /> 
     </shape> 
    </rotate> 
</item> 

<item android:left="5dp"> 
    <shape android:shape="rectangle" > 
     <solid android:color="@color/colorReciveMessageBg" /> 
     <corners android:radius="5dp" /> 
    </shape> 
</item> 

</layer-list> 

最终结果

enter image description here

enter image description here