如何Facebook的创建Android上的聊天元首?什么是API来创建的所有其他视图顶部的浮动看法?
解决方案This之一:
允许应用程序打开窗口使用类型 TYPE_SYSTEM_ALERT,对其他所有程序的顶层。 很少有应用程序应该使用此权限;这些窗口的目的 用于与用户的系统级相互作用。
常数值:android.permission.SYSTEM_ALERT_WINDOW
//编辑: 满code 这里:
公共类ChatHeadService延伸服务{
私人窗口管理器窗口管理;
私人ImageView的chatHead;
@覆盖公共的IBinder onBind(意向意图){
// 不曾用过
返回null;
}
@覆盖公共无效的onCreate(){
super.onCreate();
窗口管理=(窗口管理器)getSystemService(WINDOW_SERVICE);
chatHead =新ImageView的(这一点);
chatHead.setImageResource(R.drawable.android_head);
WindowManager.LayoutParams PARAMS =新WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;
windowManager.addView(chatHead,则params);
}
@覆盖
公共无效的onDestroy(){
super.onDestroy();
如果(chatHead!= NULL)windowManager.removeView(chatHead);
}
}
不要忘记以某种方式启动服务:
startService(新意图(背景下,ChatHeadService.class));
How does Facebook create the Chat Heads on Android? What is the API to create the floating views on top of all other views?
解决方案This one:
Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications. Very few applications should use this permission; these windows are intended for system-level interaction with the user.
Constant Value: "android.permission.SYSTEM_ALERT_WINDOW"
//EDIT: The full code here:
public class ChatHeadService extends Service {
private WindowManager windowManager;
private ImageView chatHead;
@Override public IBinder onBind(Intent intent) {
// Not used
return null;
}
@Override public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
chatHead = new ImageView(this);
chatHead.setImageResource(R.drawable.android_head);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;
windowManager.addView(chatHead, params);
}
@Override
public void onDestroy() {
super.onDestroy();
if (chatHead != null) windowManager.removeView(chatHead);
}
}
Don't forget to start the service somehow:
startService(new Intent(context, ChatHeadService.class));
上一篇:亚马逊弹性魔豆节点和新公共管理不规范的安装位置亚马逊、节点、不规范、弹性
下一篇:在pvented $ P $可疑迹象(Heroku的,亚马逊的AWS,Gmail的SMTP)亚马逊、可疑、迹象、pvented