【问题标题】:Taking screenshot of screen(programmatically)截取屏幕截图(以编程方式)
【发布时间】:2013-02-28 21:04:53
【问题描述】:

我想以编程方式截取 Android 设备的屏幕截图。

我知道这个问题已经被问过很多次了。我知道有两种方法可以做到这一点。

  1. 使用截图库(但我一直黑屏)。
  2. 从以\dev\graphics\fb0为根的帧缓冲区获取数据(但它始终为 0 字节,我不知道存储当前设备屏幕截图的确切位置)。我的首选要求是获得更好的帧速率。我的代码是

    public void onCreate(Bundle savedInstanceState)
    {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
    
       Intent intent = new Intent();
       intent.setClass(this, ScreenshotService.class);
       bindService (intent,  new ServiceConnection() {
    
        @Override
        public void onServiceDisconnected(ComponentName name) 
        {
    
        }
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
          try {
                asl = IScreenshotProvider.Stub.asInterface(service);
          } catch (Exception ex) {
                Log.e("errrorrrrrrrrrrrrr","errrorrrrrrrrrrr", ex);
          }
        }
    }, Context.BIND_AUTO_CREATE);
    Button b1=(Button) this.findViewById(R.id.widget33);
    b1.setOnClickListener(new OnClickListener() {
    
        public void onClick(View view) 
        {
            try {
                asl.takeScreenshot();
            } catch (RemoteException ex) {
                Log.e("nnnnerrrrrrrrrrrrrr","errrrrrrrrrrrrr",ex);
            }
        }
    });
    }'
    

【问题讨论】:

  • Android 没有内置的截图库。你在说什么图书馆?
  • Linux 上的路径分隔符是 / 而不是 \。
  • 您是在谈论以编程方式截取屏幕截图,还是简单地使用另一个应用程序,或者从 Eclipse,或者..?
  • 以编程方式截取屏幕截图

标签: android screenshot


【解决方案1】:

通常当您使用屏幕截图时,我们会获取屏幕图像。你是按照说的那样运行它吗,这也可能是设备问题,所以我建议你尝试在其他设备上使用它。

有时问题可能出在将文件写回 sd 时。所以请提供您尝试过的完整代码。

【讨论】:

    【解决方案2】:

    不要多次发布一个问题。

    您可以使用以下代码获取视图的绘图缓存:

    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();
    Bitmap b1 = view.getDrawingCache();
    

    【讨论】:

    • 我不想只截取我的应用程序的屏幕截图,而是要在设备屏幕上显示的任何内容
    • SurfaceView 或 TextureView 没有绘图缓存
    猜你喜欢
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2011-04-06
    相关资源
    最近更新 更多