Я создал небольшой сервис, как здесь:
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.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
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);
}
}
Разница только в том, что мой ImageView имеет MATCH_PARENT по ширине и высоте, изображение внутри прозрачно на 99%.
Все работает нормально, но я не могу потрогать, свайпнуть или еще что-нибудь, когда служба запущена. Я хочу, чтобы ImageView был полностью скрыт для любого сенсорного взаимодействия с пользователем, например, ImageView - это не что иное, как наклейка на стекле.
Я пробовал setClickable(true/false) и als переопределять onTouchEvent с возвратом true/false, но безрезультатно.
Любая помощь здесь о том, как это сделать?
P.S.: Я знаю, что это нежелательное поведение серьезного приложения, но это просто приложение для шутки для меня и моих друзей.