打包好的apk:http://url.cn/UN0bvo
注:
1.这个apk的IP地址是我的主机地址...
2.要android4.x才能正常运行...
3.发现只有本校校园网的同学才能连上........
自定义按钮皮肤:
1.在res里面新建一个叫drawable的文件
2.里面放入需要的素材图片
3.新建一个xml(button_skin),类型是Drawabel的文件写入一下内容
4.在主界面的xml文件里面Button的属性加上android:background="@drawable/button_skin"
button_skin.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="false" android:drawable="@drawable/normal"></item>
<item android:state_pressed="true" android:drawable="@drawable/pressed"></item>
</selector>
MainActivity.java(要在mainfest.xml中加上Internet权限!)
package com.example.chatclient;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
EditText editText;
TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText1);
text = (TextView) findViewById(R.id.textView1);
findViewById(R.id.connect).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
connect();
}
});
findViewById(R.id.send).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
send();
}
});
}
//定义socket,以及它的输入输出流对象
Socket socket = null;
BufferedWriter writer = null;
BufferedReader reader = null;
public void connect(){
//启用异步处理多线程
AsyncTask<Void, String, Void> read = new AsyncTask<Void, String, Void>(){
@Override
protected Void doInBackground(Void... arg0) {
try {
socket = new Socket("10.10.164.73",12345);
//获取socket的输入输出流
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
publishProgress("@Successfully!");
}catch (UnknownHostException e1) {
Toast.makeText(MainActivity.this, "无法建立连接!", Toast.LENGTH_SHORT).show();
e1.printStackTrace();
} catch (IOException e1) {
Toast.makeText(MainActivity.this, "无法建立连接!", Toast.LENGTH_SHORT).show();
e1.printStackTrace();
}
try {
String line = null;
while ((line = reader.readLine()) != null) {
publishProgress(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(String... values) {
if(values[0].equals("@Successfully!")){
Toast.makeText(MainActivity.this, "连接成功!", Toast.LENGTH_SHORT).show();
}
text.append("别人说:"+values[0]+"\n");
super.onProgressUpdate(values);
}
};
//启动线程
read.execute();
}
public void send(){
try {
writer.write(editText.getText().toString()+"\n");
writer.flush();
text.append("我说:"+editText.getText().toString()+"\n");
editText.setText("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}