編輯:關於Android編程
之前我們說到了關於IQ聊天軟件的局域網聊天測試,今天給大伙說說氣泡的生成和編碼,這不是第三方的東西,是自己
開發的,需要整合布局和容器來實現,其實當你看到源碼後,就會覺得很簡單,不信你跟著我往下看
首先說說我編程的思想,我們在一個Activity裡要動態生成一個消息列表,那ListView是必不可少的容器了,這是其一
其二,我們可以清楚的知道,“我”和好友的氣泡底色都是不同的,QQ的底色為:“我”為白底,好友“綠底”,不過這是以前老版本的,現在的新版本有自定義氣泡,種類很多,我們就不一一介紹了,所以我們需要定義兩個ListView Item 來填充ListView
其三,我們把布局文件寫好後,剩下的就是加載消息列表了,今天就著重說說氣泡的開發吧,然後大致講講氣泡消息列表的加載
首先創建一個Activity,添加一個ListView,因為源碼都上傳了,這裡就不貼代碼了

分別定義 “我” 和 好友 的消息氣泡布局文件:

此為好友的消息氣泡布局,布局源碼請到
源碼下載地址,附帶數據庫:http://download.csdn.net/detail/jspping/8067509
主布局是線性布局,在主布局下添加了一個頭像Imageview、一個發送時間Textview,嵌套了一個線性布局,給線性布局添加了一個背景圖片,也就是綠底色氣泡,在線性布局裡添加了一個好友消息 TextView,顯示好友發送的消息
我的氣泡:

氣泡實時動態加載核心代碼:
et_input=(EditText) findViewById(R.id.et_input);
findViewById(R.id.ib_send).setOnClickListener(new OnClickListener(){
public void onClick(View v) {
myAccount=MoreActivity.me.getAccount();
ObjectOutputStream oos;
try {
oos = new ObjectOutputStream
//通過account找到該線程,從而得到OutputStream
(ServerManager.getClientConServerThread(myAccount).getSocket().getOutputStream());
//得到輸入的數據,並清空EditText
chatContent=et_input.getText().toString();
et_input.setText();
//發送消息
IQMSG m=new IQMSG();
m.setType(IQMSGResult.COM_MES);
m.setSender(myAccount);
m.setSenderNick(MoreActivity.me.getNick());
m.setSenderAvatar(MoreActivity.me.getAvatar());
m.setReceiver(chatAccount);
m.setContent(chatContent);
m.setSendTime(IQTime.geTimeNoS());
oos.writeObject(m);
//更新聊天內容
updateChatView(new MessageEntity(
MoreActivity.me.getAvatar(),
chatContent,
IQTime.geTime(),
false));
} catch (IOException e) {
e.printStackTrace();
}
}
});
//注冊廣播
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction(engineer.jsp.iq.Client.mes);
br=new MyBroadcastReceiver();
registerReceiver(br, myIntentFilter);
ManageActivity.addActiviy(MessageActivity, this);
}
@Override
public void finish() {
unregisterReceiver(br);
super.finish();
}
//廣播接收器
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String[] mes = intent.getStringArrayExtra(message);
Log.i(MessageActivity, 數據:+mes);
//更新聊天內容
updateChatView(new MessageEntity(
Integer.parseInt(mes[2]),
mes[3],
mes[4],
true));
}
}
public void updateChatView(MessageEntity chatEntity){
chatEntityList.add(chatEntity);
chatListView=(ListView) findViewById(R.id.lv_chat);
chatListView.setAdapter(new MessageAdapter(this,chatEntityList));
}
如果寫一個android支持的html文件
Software License .box { overflow:hidden
非微信內置浏覽器中的網頁調起微信支付的方案研究
問題來源之前在app中集成過微信支付,此種微信支付方式為app支付,即在我們自己的應用中嵌入微信支付SDK,由Native代碼調起微信支付。後來由於業務需要在我們app的
白話開發——Android Studio代碼調試技巧篇
Android Studio目前已經成為開發Android的主要工具,用熟了可謂相當順手。作為開發者,調試並發現bug,進而解決,可是我們的看家本領。正所謂,工欲善其事必
Android 自定義view模板並實現點擊事件的回調
Android 自定義view模板並實現點擊事件的回調主要的目的就是仿老版QQ的一個界面做一個模板。然後實現點擊事件的回調。先看效果圖:步驟如下: 1.在res/valu