Es ist möglich mit WindowManager
in Android.
https://stackoverflow.com/a/10268650/3047840
ich sagen soll ja Sie müssen SurfaceView
ein Bild zu machen, aber es muss nicht zu einem bestimmten XML-Layout gebunden werden. Sie können es der Klasse WindowManager
hinzufügen, die sogar im Service funktioniert. So öffnet die WindowManager
hier ein "Fenster", damit Sie in Android einen Floating-Effekt ausführen können.
Insbesondere
Sie einen SurfaceView
in den WindowManager
hinzufügen können und die Parameter einstellen, wie folgend.
mPreview = new CameraPreview(this, mCamera, jpegCallback);
WindowManager wm = (WindowManager) this
.getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSPARENT);
params.height = 1;
params.width = 1;
wm.addView(mPreview, params);
Android hat diese Funktionalität, während iOS nicht funktioniert. Aus diesem Grund können Sie Facebook-Chathead auf dem Startbildschirm in Android statt in iOS aktivieren.
Show facebook like chat head from a broadcast receiver in android
Es ist möglich, es mit * effektiv * keine Vorschau zu tun, wie in der Frage gezeigt, die Sie verknüpft haben. – Sam
@Gridtestmail dann, wie die App das Bild ohne Benutzerkenntnis nimmt? . Sie starteten einen Dienst, um ein Bild aufzunehmen und eine Dummy-Oberflächenansicht/Oberflächenstruktur zu verwenden. https://play.google.com/store/apps/details?id=com.zenaapps.backgroundcamera. Wie können wir dasselbe erreichen? Könnten Sie ein Codebeispiel bereitstellen, wenn Sie eines haben? –