我想知道如何做Whatsapp或Telegram在他们的留言箱中做的事情。 无论他们有多大,他们总是看起来很好,与你发送的文字有关。
我自己尝试这样做,我拍了这张照片:
现在我在我的App中使用它:(它保存为chat_bubble.png)
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:layout_marginRight="0dp"
android:id="@+id/list_item"
android:gravity="right">
<LinearLayout
android:id="@+id/row_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dip"
android:layout_marginLeft="5dip"
android:layout_marginRight="5dip"
android:layout_marginTop="5dip"
android:background="@drawable/chat_bubble"
android:orientation="horizontal"
android:singleLine="false" >
<TextView
android:id="@+id/list_item_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:paddingLeft="5dp"
android:text="ProgramTitle"
android:textColor="@android:color/white"
android:textSize="20sp" />
<ImageView
android:id="@+id/messageIcon"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginTop="15dp"
android:layout_marginRight="10dp"
android:padding="2dp"
android:src="@drawable/wait" />
</LinearLayout>
</LinearLayout>
这是ListView中每个ListItem的布局。 它看起来像这样:
但如果我使用较长的文字,那么图片会被拉长,所以它看起来不再那么好看了:
现在我的问题是,怎么可能没有这个问题。有什么好主意可以解决这个问题吗?太棒了。
答案 0 :(得分:2)
您应该从图像中创建一个9补丁。
在Android Dev上查看本教程。网站:http://developer.android.com/tools/help/draw9patch.html
在9补丁图像中,您声明图像的哪些部分是“可伸展的”,哪些部分不是。它基本上是一个 .png 图像,其中图像的1 px部分告诉Android,拉伸此部分。您应该将图像保存在名为drawable
的{{1}}目录中,然后将其称为something.9.png
。
Android SDK包含一个小程序,用于从常见图像创建9个补丁图像。