加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Android泡泡聊天界面的达成及源码

发布时间:2021-11-25 19:14:00 所属栏目:教程 来源:互联网
导读:写了个界面,实现了Android泡泡聊天界面。运行结果如下,点击发送按钮,屏幕就显示Text的内容。 我也是在网上的一份源码的基础上更改的,整个泡泡界面的实现要点: (1)主界面其实就是一个List View (2)文字显示界面其实就使用了android:background=@drawa
写了个界面,实现了Android泡泡聊天界面。运行结果如下,点击发送按钮,屏幕就显示Text的内容。
 
 
 
我也是在网上的一份源码的基础上更改的,整个泡泡界面的实现要点:
 
(1)主界面其实就是一个List View
 
(2)文字显示界面其实就使用了android:background="@drawable/incoming"这个东西。背景图片的格式是xxx.9.png,专门用来缩放的,不然显示效果非常差。
 
(3)自定义了一个adapter,当然是继承android.widget.BaseAdapter,重写了getView的方法。
 
整个工程分布如下:
 
 
 
主activity: ChatActivity如下:
 
package com.tencent;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.util.Log;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.widget.EditText;  
import android.widget.ListView;  
  
import java.util.ArrayList;  
import java.util.Calendar;  
  
public class ChatActivity extends Activity {  
    private static final String TAG = ChatActivity.class.getSimpleName();;  
  
    private ListView talkView;  
  
    private Button messageButton;  
  
    private EditText messageText;  
  
    // private ChatMsgViewAdapter myAdapter;   
  
    private ArrayList<ChatMsgEntity> list = new ArrayList<ChatMsgEntity>();  
  
    public void onCreate(Bundle savedInstanceState) {  
        Log.v(TAG, "onCreate >>>>>>");  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
  
        talkView = (ListView) findViewById(R.id.list);  
        messageButton = (Button) findViewById(R.id.MessageButton);  
        messageText = (EditText) findViewById(R.id.MessageText);  
        OnClickListener messageButtonListener = new OnClickListener() {  
  
            @Override  
            public void onClick(View arg0) {  
                // TODO Auto-generated method stub   
                Log.v(TAG, "onclick >>>>>>>>");  
                String name = getName();  
                String date = getDate();  
                String msgText = getText();  
                int RId = R.layout.list_say_he_item;  
  
                ChatMsgEntity newMessage = new ChatMsgEntity(name, date, msgText, RId);  
                list.add(newMessage);  
                // list.add(d0);   
                talkView.setAdapter(new ChatMsgViewAdapter(ChatActivity.this, list));  
                messageText.setText("");  
                // myAdapter.notifyDataSetChanged();   
            }  
  
        };  
        messageButton.setOnClickListener(messageButtonListener);  
    }  
  
    // shuold be redefine in the future   
    private String getName() {  
        return getResources().getString(R.string.myDisplayName);  
    }  
  
    // shuold be redefine in the future   
    private String getDate() {  
        Calendar c = Calendar.getInstance();  
        String date = String.valueOf(c.get(Calendar.YEAR)) + "-"  
                + String.valueOf(c.get(Calendar.MONTH)) + "-" + c.get(c.get(Calendar.DAY_OF_MONTH));  
        return date;  
    }  
  
    // shuold be redefine in the future   
    private String getText() {  
        return messageText.getText().toString();  
    }  
  
    public void onDestroy() {  
        Log.v(TAG, "onDestroy>>>>>>");  
        // list = null;   
        super.onDestroy();  
    }  
}  

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读