Вот как такие вещи, как Тосты и диалоговых окон работы:
В случае, когда только добавление или доведение до фронта не работает, скажем, когда вы имеете услугу добавить свой собственный взгляд на другой вид деятельности клиента или приложения (FaceUnlock делает это), или вы не можете зависеть от иерархии, вам нужно использовать диспетчер окон и токен окна, чтобы сделать трюк. Затем вы можете создавать макеты и использовать анимацию и аппаратное ускорение, как и раньше.
WindowManager windowManager = (WindowManager) getBaseContext().getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(WindowManager.LayoutParams.FIRST_SUB_WINDOW);
layoutParams.width = 300;
layoutParams.height = 300;
layoutParams.format = PixelFormat.RGBA_8888;
layoutParams.flags =
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
| WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
layoutParams.token = getWindow().getDecorView().getRootView().getWindowToken();
//Feel free to inflate here
mTestView = new View(this);
mTestView.setBackgroundColor(Color.RED);
//Must wire up back button, otherwise it's not sent to our activity
mTestView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
}
return true;
}
});
windowManager.addView(mTestView, layoutParams);
Тогда не забудьте удалить вид OnDestroy (или OnPause) или разобьет
if (mTestView != null) {
WindowManager windowManager = (WindowManager) getBaseContext().getSystemService(Context.WINDOW_SERVICE);
if (mTestView.isShown()) {
windowManager.removeViewImmediate(mTestView);
}
}
См. Ответ на этот вопрос: http://stackoverflow.com/questions/2176922/how-to-create-transparent-activity-in-android – Jules
Так прозрачный не будет потреблять все события касания? – Allahjane
Да, но это обычно то, что вы хотите, если рисуете верхнюю часть другого действия. Отклоните свое мнение, если пользователь коснется его наружу, будет моим советом. – Jules