Я пытаюсь реализовать плавающую кнопку виджета (например, Facebook Messenger), которая отображается поверх другого приложения. Кнопка должна мешать отображению другого приложения и отображать весь экран смартфона внизу.
Плавающая кнопка уже реализована и отлично работает в любом приложении. Получение корневого представления и распечатка растрового изображения этого плавающего вида просто вернет изображение плавающей кнопки. Я думаю, что плавающее окно не может определить вид приложений внизу.
Одним из возможных решений может быть запуск другого приложения в качестве отдельного действия и получение его представления, но я не уверен, как это сделать. Может быть, есть более простой способ добиться этого?
//Creating the floating window and set its Layout parameters
mFloatViewLayoutParams = new WindowManager.LayoutParams();
mFloatViewLayoutParams.format = PixelFormat.TRANSLUCENT;
mFloatViewLayoutParams.flags = WindowManager.LayoutParams.FORMAT_CHANGED;
mFloatViewLayoutParams.type = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
? WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
: WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
mFloatViewLayoutParams.gravity = Gravity.START;
mFloatViewLayoutParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
mFloatViewLayoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
// adding the floatview to the WindowManager
LayoutInflater inflater = LayoutInflater.from(activity);
mFloatView = inflater.inflate(R.layout.float_view_layout, null);
mWindowManager.addView(mFloatView, mFloatViewLayoutParams);
...
// some clickListener to start the screenshot
ImageButton imageButton = mFloatView.findViewById(R.id.imageButton);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
// here I want to get the view of the whole screen to
screenshot it
}
});
}
});
Чего я не хочу: я не хочу снимать с экрана вид моей основной деятельности, которая запускает плавающую кнопку.
У меня действительно нет идей о том, как справиться с этой проблемой. Надеюсь, у кого-то есть предположение!
Ура!