小编use*_*008的帖子

如何使用Smack了解XMPP openfire中的键入状态

我正在使用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有什么区别?

谢谢!

android xmpp openfire smack asmack

8
推荐指数
2
解决办法
1万
查看次数

将图像从url保存到SD卡

我正在将图像从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)

android

4
推荐指数
1
解决办法
7099
查看次数

LinearLayout显示项目从下到上

我有一个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)

请帮我.

android android-linearlayout

3
推荐指数
1
解决办法
6023
查看次数

标签 统计

android ×3

android-linearlayout ×1

asmack ×1

openfire ×1

smack ×1

xmpp ×1