我正在使用Openfire XMPP服务器开发聊天应用程序.我可以在两个用户之间进行文字聊天 但是我想在某人输入消息时知道打字状态.所以我创建了一个类: -
public class typingStatus implements ChatStateListener {
@Override
public void processMessage(Chat arg0, Message arg1) {
// TODO Auto-generated method stub
}
@Override
public void stateChanged(Chat arg0, ChatState arg1) {
// TODO Auto-generated method stub
System.out.println(arg0.getParticipant() + " is " + arg1.name());
}
}
Run Code Online (Sandbox Code Playgroud)
但我很困惑,它将如何运作?我知道我需要一个数据包,我可以在Listener中使用它.但我无法找到该数据包.
请任何人建议,它将如何运作?
还有Smack和asmack有什么区别?
谢谢!
我正在将图像从url保存到SD卡.但是sdcard中的图像大小为0.图像在SD卡中创建,但现在从URL检索数据并保存.所以它给我0大小.
try
{
URL url = new URL("http://api.androidhive.info/images/sample.jpg");
InputStream input = url.openStream();
try {
//The sdcard directory e.g. '/sdcard' can be used directly, or
//more safely abstracted with getExternalStorageDirectory()
File storagePath = Environment.getExternalStorageDirectory();
OutputStream output = new FileOutputStream (new File(storagePath,username+".png"));
try {
byte[] buffer = new byte[2048];
int bytesRead = 0;
while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) {
output.write(buffer, 0, bytesRead);
}
} finally {
output.close();
}
} finally {
input.close();
}
} catch(Exception e)
{
System.out.println("error in …Run Code Online (Sandbox Code Playgroud) 我有一个LinearLayout.我在运行时添加项目.但所有项目都从TOP到BOTTOM显示.现在我正在尝试将项目BOTTOM显示为TOP.
我的意思是.我想从BOTTOM到TOP开始设置线性布局的项目.
这是我的线性布局: -
messagesContainer = (ViewGroup) findViewById(R.id.messagesContainer);
scrollContainer = (ScrollView) findViewById(R.id.scrollContainer);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
if (!leftSide) {
bgRes = R.drawable.right_message_bg;
params.gravity = Gravity.RIGHT;
params.leftMargin=30;
}
else
{
params.gravity = Gravity.LEFT;
params.rightMargin=30;
}
textView.setLayoutParams(params);
textView.setBackgroundResource(bgRes);
runOnUiThread(new Runnable() {
@Override
public void run() {
messagesContainer.addView(textView,messagesContainer.getChildCount());
//messagesContainer.bringChildToFront(textView);
// Scroll to bottom
if (scrollContainer.getChildAt(0) != null) {
scrollContainer.scrollTo(scrollContainer.getScrollX(), scrollContainer.getChildAt(0).getHeight());
}
scrollContainer.fullScroll(View.FOCUS_DOWN);
scrollContainer.pageScroll(View.FOCUS_DOWN);
}
});
Run Code Online (Sandbox Code Playgroud)
请帮我.