Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在其他应用程序上显示代码线?_Android_Drawing_Android Service_Android Windowmanager - Fatal编程技术网

Android 如何在其他应用程序上显示代码线?

Android 如何在其他应用程序上显示代码线?,android,drawing,android-service,android-windowmanager,Android,Drawing,Android Service,Android Windowmanager,详细信息:我想添加一条代码绘制的线(就像您使用canvas/paint绘制)并将其显示在其他应用程序上 我目前有一个应用程序,允许我在其他应用程序上显示图像。查看我的代码。我已经实施了这样做的许可: android.permission.SYSTEM_ALERT_WINDOW 我尝试将画布/绘画添加到WindowManager时没有出现错误,但我的应用程序崩溃。我试着寻找答案,但结果却是空的 如果有人能帮我解决这个问题,你将不胜感激 澄清一下:我希望这是我可以在其他应用程序上使用它,并且我仍然

详细信息:我想添加一条代码绘制的线(就像您使用canvas/paint绘制)并将其显示在其他应用程序上

我目前有一个应用程序,允许我在其他应用程序上显示图像。查看我的代码。我已经实施了这样做的许可:

android.permission.SYSTEM_ALERT_WINDOW
我尝试将画布/绘画添加到WindowManager时没有出现错误,但我的应用程序崩溃。我试着寻找答案,但结果却是空的

如果有人能帮我解决这个问题,你将不胜感激


澄清一下:我希望这是我可以在其他应用程序上使用它,并且我仍然可以与其他应用程序交互的地方。此外,我还添加了一个按钮功能,可以使用WindowManager addView和WindowManager removeView关闭/打开视图,但每次添加视图时,它都会覆盖整个区域,我无法再单击按钮删除视图。

我找到了一种方法,将在此处共享。如果您想要更多的代码,请使用我在问题中也链接到的链接

我想我没有设置正确的代码,或者至少所有的代码,直到现在

DrawView.java

这将在屏幕上画一个十字

MainService.java


如果您将其添加到现有代码中,它应该可以正常工作。

我找到了一种方法,将在这里与大家分享。如果您想要更多的代码,请使用我在问题中也链接到的链接

我想我没有设置正确的代码,或者至少所有的代码,直到现在

DrawView.java

这将在屏幕上画一个十字

MainService.java


如果将其添加到现有代码中,它应该可以正常工作。

只需使用透明的活动即可。谷歌关于如何做到这一点。对不起,我应该澄清。我希望在活动中绘制此图,当我关闭活动时,该线仍然可见。然后,我可以与其他应用程序交互,做任何我想做的事情。我将把这个澄清添加到我的原始问题中。我刚刚找到了我的答案并添加了它。只需使用一个透明的活动。谷歌关于如何做到这一点。对不起,我应该澄清。我希望在活动中绘制此图,当我关闭活动时,该线仍然可见。然后,我可以与其他应用程序交互,做任何我想做的事情。我将在我原来的问题上补充这一澄清。我刚刚找到了我的答案并补充了它。
package com.example.floatingicon;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class DrawView extends View{
    Paint paint = new Paint();

    public DrawView(Context context){
        super(context);
        paint.setColor(Color.BLACK);
    }

    @Override
    public void onDraw(Canvas canvas){
        canvas.drawLine(240, 0, 240, 620, paint);
        canvas.drawLine(0, 200, 480, 200, paint);
    }
}
import com.example.floatingicon.DrawView;

public class MainService extends Service
{
    private DrawView drawView;

    @Override
    public void onCreate()
    {
        drawView = new DrawView(this);

        final WindowManager.LayoutParams paramsDraw = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT, 
            WindowManager.LayoutParams.WRAP_CONTENT, 
            WindowManager.LayoutParams.TYPE_PHONE,
            WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, 
            PixelFormat.TRANSLUCENT);

        paramsDraw.gravity = Gravity.TOP | Gravity.LEFT;
        paramsDraw.x=0;
        paramsDraw.y=0;

        winManager.addView(drawView, paramsDraw);
    }
}