如何使用此库截取Android(模拟器)的截图并在哪里可以获取屏幕截图

问题描述:

我已经安装了此库http://code.google.com/p/android-screenshot-library/如何使用此库截取Android(模拟器)的截图并在哪里可以获取屏幕截图

我已经启动了我的Android模拟器,当我运行run.sh文件时它说“服务开始成功”。

我该怎么做或我在哪里可以得到我的模拟器的屏幕截图。我正在使用所有最新版本。谢谢。

+0

使用eclipse IDE吗? – Hitendra 2012-03-20 07:20:45

+0

@Hitendra不,我直接从终端使用adb运行..我想截取手机上正在运行的任何活动的屏幕截图。实际上我的项目是ScreenCast – albert 2012-03-21 08:33:42

+0

嘿Albert!你有答案吗?如果是的话,请指导。 – user1517153 2014-03-14 05:32:59

import pl.polidea.asl.*; 
import android.app.Activity; 
import android.content.ComponentName; 
import android.content.Context; 
import android.content.Intent; 
import android.content.ServiceConnection; 
import android.content.res.Resources.NotFoundException; 
import android.os.*; 
import android.view.*; 
import android.widget.*; 
import android.graphics.*; 

public class ScreenshotDemo extends Activity { 

/* 
* The ImageView used to display taken screenshots. 
*/ 
private ImageView imgScreen; 

private ServiceConnection aslServiceConn = new ServiceConnection() { 

    @Override 
    public void onServiceDisconnected(ComponentName name) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onServiceConnected(ComponentName name, IBinder service) { 
     aslProvider = IScreenshotProvider.Stub.asInterface(service); 
    } 
}; 
private IScreenshotProvider aslProvider = null; 


/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    imgScreen = (ImageView)findViewById(R.id.imgScreen); 
    Button btn = (Button)findViewById(R.id.btnTakeScreenshot); 
    btn.setOnClickListener(btnTakeScreenshot_onClick); 

    // connect to ASL service 
    //Intent intent = new Intent(ScreenshotService.class.getName()); 
    Intent intent = new Intent(); 
    intent.setClass(this, ScreenshotService.class); 
    //intent.addCategory(Intent.ACTION_DEFAULT); 
    bindService (intent, aslServiceConn, Context.BIND_AUTO_CREATE); 
} 

@Override 
public void onDestroy() { 
    unbindService(aslServiceConn); 
    super.onDestroy(); 
} 


private View.OnClickListener btnTakeScreenshot_onClick = new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     try { 
      if (aslProvider == null) 
       Toast.makeText(ScreenshotDemo.this, R.string.n_a, Toast.LENGTH_SHORT).show(); 
      else if (!aslProvider.isAvailable()) 
       Toast.makeText(ScreenshotDemo.this, R.string.native_n_a, Toast.LENGTH_SHORT).show(); 
      else { 
       String file = aslProvider.takeScreenshot(); 
       if (file == null) 
        Toast.makeText(ScreenshotDemo.this, R.string.screenshot_error, Toast.LENGTH_SHORT).show(); 
       else { 
        Toast.makeText(ScreenshotDemo.this, R.string.screenshot_ok, Toast.LENGTH_SHORT).show(); 
        Bitmap screen = BitmapFactory.decodeFile(file); 
        imgScreen.setImageBitmap(screen); 

       } 
      } 
     } catch (NotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (RemoteException e) { 
      // squelch 
     } 

    } 
}; 
} 
+0

1)。这段代码将屏幕截图缓冲区发送到无论显示在屏幕上的电脑上2)。这个代码应该被编译和运行,是否应该安装在模拟器中......实际上我的项目是ScreenCast – albert 2012-03-21 08:36:32

打开Eclipse>打开DDMS视图>选择您的模拟器淘汰名单>按近,你从列表中

希望你觉得它选择模拟器的小闪烁的相机图标。

+0

I想要一个代码,将启动一个服务,将发送给我什么显示在模拟器(手机)到PC在一个帧缓冲区,实际上我的项目是ScreenCast – albert 2012-03-21 08:34:56

DDMS具有截取视图截图的功能。

在Eclipse中,打开DDMS透视图并单击设备布局中的屏幕截图图标。

+0

我想要一个代码,将启动一个服务,将发送给我无论显示在模拟器(手机)到PC缓冲区,实际上我的项目是ScreenCast – albert 2012-03-21 08:40:05