Desenho na Tela

Olá a todos…

Estou tentando criar um aplicativo que ao clicar em START cria um serviço de sobreposição e faz alguns desenhos na tela…
até a versão 4.4 está funcionando corretamente, a partir da versão 5 e 6 do android é iniciado o serviço porem não
desenha nada na tela, meio que fica transparente…

Código:

public class ChatHead extends Service

[java]
@Override
    public IBinder onBind(Intent arg2) {
        return null;
    }

    @Override
    public void onCreate() {


           super.onCreate();
           Bitmap kangoo = BitmapFactory.decodeResource(getResources(), R.drawable.ic_action_ball);


        //INITIALIZE FROM SCREEN DIMENSIONS

        wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);


        //PARAMETERS
        params = new LayoutParams((int) this.width, (int) this.height, LayoutParams.TYPE_SYSTEM_OVERLAY, 262184  , PixelFormat.TRANSLUCENT);
 //       params = new LayoutParams(kangoo.getWidth(), kangoo.getHeight(), LayoutParams.TYPE_SYSTEM_ALERT, LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,PixelFormat.TRANSLUCENT);
        params2 = new LayoutParams((int) (this.ratio2 * 162.0f), (int) (this.ratio * 100.0f), LayoutParams.TYPE_PHONE, 262184, PixelFormat.TRANSLUCENT);
        params.gravity = 51;
        params2.gravity = 49;
        params.setTitle("Load Average");
        mView = new HUDView(this, kangoo);
        kView = new HUDView(this, kangoo);
        mView.setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View arg0, MotionEvent arg1) {
                switch (arg1.getAction()) {
                    case 0:
                        Touch.setFloat(arg1.getX(), arg1.getY());
                        return true;
                    case 1:
                        Touch.PASKAA();
                        return true;
                    case 2:
                        Touch.setFloat(arg1.getX(), arg1.getY());
                        return true;
                    default:
                        return false;
                }
            }
        });

        kView.setOnTouchListener(new OnTouchListener() {
            private boolean a = true;

            public boolean onTouch(View arg0, MotionEvent arg1) {
                boolean z = false;
                switch (arg1.getAction()) {
                    case 0:
                    case 2:
                        return true;
                    case 1:
                        if (!this.a) {
                            z = true;
                        }
                        this.a = z;
                        if (this.a) {
                            ChatHead.params.type = LayoutParams.TYPE_SYSTEM_OVERLAY;
                        } else {
                            ChatHead.params.type = LayoutParams.TYPE_PHONE;
                        }
                        ChatHead.wm.updateViewLayout(ChatHead.mView, ChatHead.params);
                        ChatHead.wm.removeView(ChatHead.mView);
                        ChatHead.wm.addView(ChatHead.mView, ChatHead.params);
                        ChatHead.wm.removeView(ChatHead.kView);
                        ChatHead.wm.addView(ChatHead.kView, ChatHead.params2);
                        Touch.a();
                        return true;
                    default:
                        return false;
                }
            }
        });
        wm.addView(mView, params);
        wm.addView(kView, params2);

    }
 [/java]

HUDView.class

[java]

@SuppressLint({"DrawAllocation"})
class HUDView extends ViewGroup {

    Bitmap kangoo;

    public HUDView(Context context, Bitmap bitmap) {
        super(context);
        this.kangoo = bitmap;
    }

    protected void onDraw(Canvas canvas) {
        float GetWidth = MainActivity.GetWidth();
        float GetHeight = MainActivity.GetHeight();
        float f = GetHeight / 800.0f;
        float f2 = GetWidth / 1280.0f;
        super.onDraw(canvas);
        Paint paint = new Paint();


        int i, j;
        if (Touch.getA()) {
            i = ((int) (60.0f * f2)) + ((int) (100.0f * f2));
            paint.setColor(0x88cccccc);
            canvas.drawCircle(Touch.getX2() + ((float) i), Touch.getY2(), (float) ((int) (36.0f * f)), paint);
            paint.setColor(0x440000ff);
            canvas.drawCircle(Touch.getX2() + ((float) i), Touch.getY2(), (float) ((int) (31.0f * f)), paint);
            paint.setColor(0x66ffffff);
            canvas.drawCircle(Touch.getX2() + ((float) i), Touch.getY2(), (float) ((int) (24.0f * f)), paint);
            paint.setColor(0x660000ff);
            canvas.drawCircle(Touch.getX2() + ((float) i), Touch.getY2(), (float) ((int) (9.0f * f)), paint);
            paint.setColor(0xee000000);
            canvas.drawLine(Touch.getX(), Touch.getY() + ((float) ((int) (8.0f * f))), Touch.getX2() + ((float) i), Touch.getY2(), paint);
            paint.setColor(0x9900ff00);
        } else {
            paint.setColor(0x22cccccc);
            canvas.drawRect(0.0f, 0.0f, GetWidth, GetHeight, paint);
            paint.setColor(0x99ff0000);
            canvas.drawCircle(Touch.getX2() + 10.0f, Touch.getY2() + 10.0f, (float) ((int) (10.0f * f)), paint);
            canvas.drawCircle(Touch.getX2() + 10.0f, Touch.getY2() + 10.0f, (float) ((int) (6.0f * f)), paint);
            j = ((int) (60.0f * f2)) + ((int) (100.0f * f2));
            paint.setStyle(Style.STROKE);
            paint.setColor(SupportMenu.CATEGORY_MASK);
            canvas.drawCircle(Touch.getX2() + ((float) j), Touch.getY2(), (float) ((int) (73.0f * f)), paint);
            paint.setStyle(Style.FILL);
            paint.setColor(0xeecccccc);
            canvas.drawCircle(Touch.getX2() + ((float) j), Touch.getY2(), (float) ((int) (36.0f * f)), paint);
            paint.setColor(0xaa0000ff);
            canvas.drawCircle(Touch.getX2() + ((float) j), Touch.getY2(), (float) ((int) (31.0f * f)), paint);
            paint.setColor(-1);
            canvas.drawCircle(Touch.getX2() + ((float) j), Touch.getY2(), (float) ((int) (24.0f * f)), paint);
            paint.setColor(0xaa0000ff);
            canvas.drawCircle(Touch.getX2() + ((float) j), Touch.getY2(), (float) ((int) (9.0f * f)), paint);
            paint.setColor(SupportMenu.CATEGORY_MASK);
            canvas.drawLine(Touch.getX(), Touch.getY(), Touch.getX2() + ((float) j), Touch.getY2() - ((float) ((int) (8.0f * f))), paint);
            paint.setColor(0x99ff0000);
        }
        canvas.drawRect((float) ((int) (573.0f * f2)), 0.0f, (float) ((int) (708.0f * f2)), (float) ((int) (88.0f * f)), paint);
        invalidate();
    }


 [/java]

Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xyz.rsyqn.soccershoot">

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:largeHeap="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:screenOrientation="landscape" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service android:name=".ChatHead" android:screenOrientation="landscape"></service>

    </application>

</manifest>

Versão 4.4 - Imagem

Link - https://uploaddeimagens.com.br/imagens/imagem1-png–266

Versão 6.0 - Imagem

Link - https://uploaddeimagens.com.br/imagens/screenshot_20170615-124747-png

O que estou fazendo de errado ?


Alguem :open_mouth: