安卓中的对话气泡

5

你好,我想在我的应用程序中使用漫画气泡作为背景图片。我在这里看到了这篇文章:

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/ - Surender Kumar
请使用9-patch图像,可以减少90%的工作量!! - Amarjit
创建9 patch图像的最佳方法是什么? - Sim
1
@Sim,这是链接:http://romannurik.github.io/AndroidAssetStudio/nine-patches.html - Shrey
谢谢您的建议 :) - Sim
2个回答

14

收到的消息:

<?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>

希望这会有所帮助。


1
有没有一种方法可以将圆角设置为右上角? - VipiN Negi
我需要在右上角显示向上的箭头。我该如何实现?https://i.stack.imgur.com/SL4bQ.png - sejn

3

传入气泡形状的背景

<?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>

传出气泡形状背景。
<?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>

最终结果

输入图像描述

输入图像描述


有没有办法将圆角设置为与尖锐形状相对的角落? - VipiN Negi
玩弄可绘制对象,直到你做对为止。 - Some random IT boy
<shape>的大正方形矩形的代码如下:<corners android:topLeftRadius="4dp" android:bottomLeftRadius="4dp" android:bottomRightRadius="4dp"/> - Some random IT boy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接