android - Instant Messenger 气泡被拉伸(stretch)

标签 android android-layout android-listview instant-messaging livechat

我正在开发 Messenger 应用程序,但聊天气泡不正常。我正在使用 9-patch .png 图像。箭头也随着文本区域而变长。谁能帮忙。

public class AwesomeAdapter extends BaseAdapter{
    private Context mContext;
    private ArrayList<Message> mMessages;



    public AwesomeAdapter(Context context, ArrayList<Message> messages) {
        super();
        this.mContext = context;
        this.mMessages = messages;
    }
    @Override
    public int getCount() {
        return mMessages.size();
    }
    @Override
    public Object getItem(int position) {       
        return mMessages.get(position);
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Message message = (Message) this.getItem(position);

        ViewHolder holder; 
        if(convertView == null)
        {
            holder = new ViewHolder();
            convertView = LayoutInflater.from(mContext).inflate(R.layout.sms_row, parent, false);
            holder.message = (TextView) convertView.findViewById(R.id.message_text);
            convertView.setTag(holder);
        }
        else
            holder = (ViewHolder) convertView.getTag();

        holder.message.setText(message.getMessage());

        LayoutParams lp = (LayoutParams) holder.message.getLayoutParams();
        if(message.isStatusMessage())
        {
            holder.message.setBackgroundDrawable(null);
            lp.gravity = Gravity.CENTER;
            holder.message.setTextColor(mContext.getResources().getColor(R.color.textFieldColor));
        }
        else
        {       
            if(message.isMine())
            {
                holder.message.setBackgroundResource(R.drawable.chat_bg2);
                lp.gravity = Gravity.RIGHT;
            }
            else
            {
                holder.message.setBackgroundResource(R.drawable.chat_bg1);
                lp.gravity = Gravity.LEFT;
            }
            holder.message.setLayoutParams(lp);
            holder.message.setTextColor(mContext.getResources().getColor(R.color.textColor));   
        }
        return convertView;
    }
    private static class ViewHolder
    {
        TextView message;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

}

My App Chat bubbles are like this

This is my image

最佳答案

为防止箭头拉伸(stretch),它必须位于 9 补丁图像的角内。 9-patch dialog

关于android - Instant Messenger 气泡被拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19109936/

相关文章:

android - 带有 CAB 的 ListView - 如何使项目可点击但不可选择?

android - 无法在后台线程上调用观察

android - 为什么不调用 doOnNext()?

java - 如何获取发送短信的价格

android - 未应用 RelativeLayout Gravity?

android - 按顺序将动画应用到多个 View

java - 防止网络不可用时应用程序崩溃

android - 膨胀的 AlertDialogs 在 Android 4.X 上不可读,而在 Android 2.X 上看起来很完美

android - 如何在 Android 中使用 RecyclerView 应用 setItemChecked(position,true)?

java - Android ListView.notifyDataSetChanged 导致不正确的行