【发布时间】:2021-06-25 08:39:04
【问题描述】:
我已经成功地在服务中扩展了我的布局,但是它没有在Inflated Layout 中显示ImageView,我不知道为什么。我在图像视图上设置了一个onClickListener,它工作得非常好(当我点击绿色方块时记录并停止服务)。唯一的问题是它没有显示X mark,我不知道为什么。
public class OverlayService extends Service {
private ViewGroup view;
@Override
public IBinder onBind(Intent i) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
WindowManager.LayoutParams params = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.END;
}
view = (ViewGroup) layoutInflater.inflate(R.layout.test_view, null);
ImageView btnClear = view.findViewById(R.id.btn_clear);
btnClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// THIS IS SUCCESSFULLY CALLED WHEN CLICKING ON THE GREEN BUTTON.
Log.d(TAG, "onClick: Clicked");
stopSelf();
}
});
wm.addView(view, params);
}
【问题讨论】:
标签: android android-service layout-inflater android-windowmanager