如何从android中的后台服务获取当前的“查看”?

时间:2012-03-26 06:12:44

标签: android view android-service android-view

我想在设备震动上实现打印屏幕类型的东西。为此我创建了一个将在设备Boot上启动的服务。当我摇动它时,我可以看到自定义Toast消息。现在我想在同一个活动上进行打印。为此我需要'查看'对象。我已成功使用活动实现了打印屏幕。现在想在服务中实现相同的功能。

如何从android中的后台服务获取当前的“查看”?

2 个答案:

答案 0 :(得分:0)

也许你可以使用它:

HUDView mView;

 public void onCreate() {
        super.onCreate();
        mView = new HUDView(this);
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
                WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
                PixelFormat.TRANSLUCENT);
        params.gravity = Gravity.RIGHT | Gravity.TOP;
        params.setTitle("Load Average");
        WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
        wm.addView(mView, params);
        this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
    }

public HUDView(Context context) {
        super(context);
        ctx = context;

        mLoadPaint = new Paint();
        mLoadPaint.setAntiAlias(true);
        mLoadPaint.setTextSize(20);
        mLoadPaint.setARGB(255, 255, 255, 255);
    }
protected void onDraw(final Canvas canvas) {
something to draw
}

我用它在每个屏幕上画一些东西

答案 1 :(得分:0)

是的,它是一个自己的类,我的onDraw看起来像这样

 @Override
    protected void onDraw(final Canvas canvas) {
        super.onDraw(canvas);

        std = canvas;
        std.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.menu), 200, std.getHeight()-50, mLoadPaint);
        }
        invalidate();
    }