安卓屏幕截图

Posted

技术标签:

【中文标题】安卓屏幕截图【英文标题】:android Screen Capture 【发布时间】:2012-12-11 15:00:18 【问题描述】:

我想将视频屏幕捕获为来自 android 中 videoview 的图像。下面给出了我的代码。它创建图像但该图像仅包含 sdcard 中的黑屏。如何在播放时将 videoview 捕获为图像。

public class VidePlayerActivity extends Activity 
/** Called when the activity is first created. */
public String fname;
public int n=1;
LinearLayout screen;
Timer timer;
Bitmap bmScreen;
@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main2);
    Button sr=(Button)findViewById(R.id.screenrec);
    screen=(LinearLayout)findViewById(R.id.screen);
    VideoView videoView=(VideoView)findViewById(R.id.videoView1);
    videoView.setVideoPath("sdcard/test.mp4");
    MediaController mediaController=new MediaController(this);
    videoView.setMediaController(mediaController);
    sr.setOnClickListener(new OnClickListener() 

        @Override
        public void onClick(View v) 
                    screen.setDrawingCacheEnabled(true);
                    bmScreen = screen.getDrawingCache();
                    saveImage(bmScreen);
        
    );
    
 protected void saveImage(Bitmap bmpscreen3) 

        //Toast.makeText(ScreenCaptureActivity.this, "saved", Toast.LENGTH_SHORT).show();
        File myDir=new File("/sdcard/Video_images");
          myDir.mkdirs();

           fname = "img"+ n +".jpg";
          File file = new File (myDir, fname);

        try 
            FileOutputStream ostream = new FileOutputStream(file);
            bmpscreen3.compress(CompressFormat.JPEG, 100, ostream);
            ostream.flush();
            ostream.close();
         catch (Exception e) 
            e.printStackTrace();

        
    

【问题讨论】:

【参考方案1】:

类似的东西已经发布到***,下面的检查可能会帮助你。

Screen Capture in android

这里也有一个:

Programmatic screencapture on mobile device

【讨论】:

以上是关于安卓屏幕截图的主要内容,如果未能解决你的问题,请参考以下文章

安卓手机 被禁止截屏 怎么截屏

android 怎么获取当前屏幕的截图

安卓屏幕录像

C语言 服务项进行全屏幕截图 但是截图后是黑屏怎么办?

安卓升级到 Android 11后 不允许截图怎么办

android中怎么用代码实现截屏