【发布时间】:2015-09-20 05:57:52
【问题描述】:
我正在申请在屏幕上创建图像和手机上的应用程序,但仍然可以正常使用手机功能。我想用 覆盖和活动半透明但我不能使用电话功能。我错了还是我错过了什么?谁能帮帮我? 感谢您的阅读。
【问题讨论】:
标签: android overlay translucency
我正在申请在屏幕上创建图像和手机上的应用程序,但仍然可以正常使用手机功能。我想用 覆盖和活动半透明但我不能使用电话功能。我错了还是我错过了什么?谁能帮帮我? 感谢您的阅读。
【问题讨论】:
标签: android overlay translucency
我认为您正在寻找所有应用程序顶部的“facebook-chat-head”图标。对吧?
那么它就在这里,
允许应用程序使用类型打开窗口 TYPE_SYSTEM_ALERT,显示在所有其他应用程序之上。很少 应用程序应使用此权限;这些窗口旨在 用于与用户进行系统级交互。
常量值:“android.permission.SYSTEM_ALERT_WINDOW”
示例代码:
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);
}
}
别忘了以某种方式启动服务:
startService(new Intent(context, ChatHeadService.class));
完整代码here:
请看这个帖子:chat head related techniques
【讨论】: