Android可访问性突出显示

时间:2018-02-13 19:17:14

标签: android

我想在屏幕上突出显示所有可访问性可点击对象。为此,我创建了一个始终在顶部布局的应用程序。

    mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);


    DisplayMetrics displaymetrics = new DisplayMetrics();
    int screenWidth = displaymetrics.widthPixels;
    int screenHeight = displaymetrics.heightPixels;

    params = new WindowManager.LayoutParams(
            720, 1280,
            0, 0,
            WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                    | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
                    | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                    | WindowManager.LayoutParams.FLAG_FULLSCREEN,
            PixelFormat.TRANSLUCENT);

    mWindowManager.addView(testDrawView, params);

我还创建了一个可访问性服务,以便获取所有可访问性的可点击元素框参数。它工作,输出打印。

enter image description here

但问题是它没有更新。当我在屏幕上执行某些操作(所有触摸都经过)时,我需要删除旧元素的高光,以及要显示的新元素的高光。但是更改不会动态更新,我需要打开我的应用程序以强制抽屉运行。

我试过

    class BrRec extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {

        mHeadLayer.rects.clear();
        mHeadLayer.rects = (ArrayList<Rect>) intent.getSerializableExtra("rects");


        for (int i = 0; i < mHeadLayer.rects.size(); ++i)
        {
            mHeadLayer.invalidate(mHeadLayer.rects.get(i));
        }

        mHeadLayer.invalidate();}}

但它不起作用。

有没有办法动态突出显示屏幕对象?我想重写我总是在顶视图上,即使它不活跃。

也许以某种方式以编程方式激活它?

0 个答案:

没有答案