android中 代码实现截图功能(静态+动态视频)
2012-05-28 11:05
921 查看
分享下静态截图的功能代码:
以下是对正在播放的视频进行截图的功能代码:
public class ScreenShot { // 获取指定Activity的截屏,保存到png文件 static Bitmap takeScreenShot(Activity activity) { Log.i("TAG","tackScreenShot"); // View是你须要截图的View View view = activity.getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap b1 = view.getDrawingCache(); // 获取状况栏高度 Rect frame = new Rect(); activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); int statusBarHeight = frame.top; Log.i("TAG", "statusBarHeight = " + statusBarHeight); // 获取屏幕长和高 int width = activity.getWindowManager().getDefaultDisplay().getWidth(); int height = activity.getWindowManager().getDefaultDisplay() .getHeight(); // 去掉题目栏 // Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455); Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight); view.destroyDrawingCache(); return b; } // 保存到sdcard private static void savePic(Bitmap b, String strFileName) { FileOutputStream fos = null; try { Log.i("TAG","start savePic"); fos = new FileOutputStream(strFileName); Log.i("TAG","strFileName = " + strFileName); if (null != fos) { b.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); Log.i("TAG","save pic"); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void shoot(Activity a,String b) { //ScreenShot.savePic(ScreenShot.takeScreenShot(a), "sdcard/xx.png"); Log.i("TAG","shot"); Bitmap bitmap = ScreenShot.takeScreenShot(a); ScreenShot.savePic(bitmap, b); } }
以下是对正在播放的视频进行截图的功能代码:
private Bitmap createVideoThumbnail(String filePath) { Bitmap bitmap = null; android.media.MediaMetadataRetriever retriever = new android.media.MediaMetadataRetriever(); try {// MODE_CAPTURE_FRAME_ONLY // retriever // .setMode(android.media.MediaMetadataRetriever.MODE_CAPTURE_FRAME_ONLY); // retriever.setMode(MediaMetadataRetriever.MODE_CAPTURE_FRAME_ONLY); retriever.setDataSource(filePath); // bitmap = retriever.captureFrame(); String timeString = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); long time = Long.parseLong(timeString) * 1000; Log.i("TAG","time = " + time); bitmap = retriever.getFrameAtTime(time*31/160); //按视频长度比例选择帧 } catch (IllegalArgumentException ex) { // Assume this is a corrupt video file } catch (RuntimeException ex) { // Assume this is a corrupt video file. } finally { try { retriever.release(); } catch (RuntimeException ex) { // Ignore failures while cleaning up. } } return bitmap; }
相关文章推荐
- android中 代码实现截图功能(静态+动态视频)
- android中 代码实现截图功能(静态+动态视频)
- Android实现截图和分享功能的代码
- Android 代码实现屏幕截图功能
- 一行代码完成 调用系统相册 和 视频,语音库,选择图片,视频,和音频文件。在选择界面实现了录制视频和录制音频功能。 截图
- html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
- Android使用Broadcast实现无序静态与动态广播功能
- Android实现截图功能(可根据该代码进行扩展功能)
- Android实现截图功能(可根据该代码进行扩展功能)
- Android BroadcastReceiver实现自定义静态广播和动态广播(黏性广播)
- Android RecyclerView上拉加载更多功能回弹实现代码
- Android应用自动更新功能的代码实现
- android阅读器长按选择文字功能实现代码
- android实现截图功能
- Android 分享功能的实现代码
- Android社交类APP动态详情代码实现通用模板
- (转)Android截图代码实现(DDMS的ddmlib.jar)