Có thể sử dụng WindowManager
trong Android.
https://stackoverflow.com/a/10268650/3047840
tôi nên nói có bạn cần SurfaceView
để chụp ảnh nhưng nó không phải được gắn với một bố cục xml nhất định. Bạn có thể thêm nó vào lớp WindowManager
hoạt động ngay cả trong Dịch vụ. Vì vậy, WindowManager
ở đây sẽ mở ra một 'cửa sổ' để bạn có thể thực hiện bất kỳ hiệu ứng nổi nào trong Android.
Cụ thể,
Bạn có thể thêm một SurfaceView
vào WindowManager
và thiết lập các thông số như sau.
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 có chức năng này trong khi iOS thì không. Đây là lý do tại sao bạn có thể có Facebook chathead hoạt động trên màn hình chủ trong Android chứ không phải là iOS.
Show facebook like chat head from a broadcast receiver in android
Có thể làm điều đó với * hiệu quả * không xem trước, như được hiển thị trong câu hỏi bạn đã liên kết. – Sam
@Gridtestmail sau đó cách ứng dụng chụp ảnh mà người dùng không biết? . Họ bắt đầu một dịch vụ để chụp ảnh và sử dụng chế độ xem bề mặt giả/Bề mặt kết cấu. https://play.google.com/store/apps/details?id=com.zenaapps.backgroundcamera. Làm thế nào chúng ta có thể đạt được như vậy? bạn có thể cung cấp bất kỳ mẫu mã nào, nếu bạn có bất kỳ mẫu nào không? –