google 一下 “android 截屏 实现”

解决方案 »

  1.   

    public class TaxiCardActivity extends Activity {
     private static final String TAG = TaxiCardActivity.class.getName();
     private Button btnShort;
     public static String SCREEN_SHOTS_LOCATION = "/sdcard/CityGuide/Shanghai/"; @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      requestWindowFeature(Window.FEATURE_NO_TITLE);
      setContentView(R.layout.taxicard);  
      btnShort = (Button) findViewById(R.id.btnShots);
      btnShort.setOnClickListener(new Button.OnClickListener() {
       public void onClick(View v) {
        
        View taxi=(View)findViewById(R.id.taxiCard);
        try {
         takeScreenShot(taxi,SCREEN_SHOTS_LOCATION);
         
        } catch (Exception e) {
         // TODO Auto-generated catch block
         Log.e("tag",TAG);
        } 
       }  }); }
     public static void takeScreenShot(View view) throws Exception {
      takeScreenShot(view, "default");
     } public static void takeScreenShot(View view, String name) throws Exception {
      view.setDrawingCacheEnabled(true);
      view.buildDrawingCache();
      Bitmap b = view.getDrawingCache();
      FileOutputStream fos = null;
      try {
       File sddir = new File(SCREEN_SHOTS_LOCATION);
       if (!sddir.exists()) {
        sddir.mkdirs();
       }
       fos = new FileOutputStream(SCREEN_SHOTS_LOCATION +"taxicard" + ".png"); 
       if (fos != null) {
        b.compress(Bitmap.CompressFormat.PNG, 90, fos);
        fos.close();
       }
      } catch (Exception e) {
       Log.e("tag",TAG);  } }
      

  2.   

    我要截取得不是当前界面,我想截取得android手机得桌面
      

  3.   

    android还没有像win32提供getdesktopdc这样的方法吧,截图倒是可以从framebuffer中读取,如果是自己程序的view可以使用getDrawingCache,获取桌面没方法,除非强制吧
      

  4.   

      推荐你一款叫豌豆荚的手机管理软件,他能实现手机的截屏,对android sdk里的模拟器也识别,也可以截屏的,,不知道你说的android 桌面是不是这个意思
      

  5.   

    手机桌面?那更简单了,直接可以getwallper的,就能得到当前手机桌面的背影图了!
      

  6.   

    Android SDK中有个工具可以实现截屏:ddms
      

  7.   

    但你要知道的是,桌面是一个activity窗口,在后台可能会挂起的,当然这涉及到比home更2的,解锁屏,在policy base.git可以找到,我们如果模仿win32,hook住底层的activitymanager,可以处理,这需要下unix下rootkit一点技术了,同时常规机器必须root,你给RMB的话,我可以写一个有空时
      

  8.   

    楼主,300 RMB,本周末下午有空。