android中 程式碼實現截圖功能(靜態+動態視訊)
分享下靜態截圖的功能程式碼:
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中 程式碼實現截圖功能(靜態+動態視訊)
分享下靜態截圖的功能程式碼: public class ScreenShot { // 獲取指定Activity的截圖,儲存到png檔案 static Bitmap takeScreenShot(Activity activity) { L
android程式碼實現截圖功能
android開發中通過View的getDrawingCache方法可以達到截圖的目的,只是缺少狀態列! 原始介面 截圖得到的圖片 程式碼實現 1. 新增許可權(AndroidManifest.xml檔案裡) <uses-permission android:
android實現截圖功能程式碼
android開發中通過View的getDrawingCache方法可以達到截圖的目的,只是缺少狀態列! APP原始介面 儲存截圖的檔案 程式碼的實現 1. 新增許可權(AndroidManifest.xml檔案裡) <uses-perm
iPhone 應用裡實現截圖功能的程式碼
UIView *view = [[[[[UIApplication sharedApplication] windows] objectAtIndex:1] subviews] lastObject];//獲得某個window的某個subView NSInteger i
Unity3d中簡單的截圖功能
首先,新建兩個場景,Scene1 在Scene1中新增一個Button。在Canvas繫結如下指令碼: public Button but; void Start () { but = GameObject.Find ("
python程式碼實現截圖識字
有次網上down了個截圖實識的軟體,發現一天只能用10次要錢才能解鎖免費,很氣,作為一個菜雞怎麼能忍受 於是自己用python寫了個簡單的小工具,分享給大家 程式碼如下: 先安裝庫 1 from PIL import ImageGrab,Image 2 import keyboard #監控鍵
Android工具之實現截圖和禁止截圖
轉載地址:http://blog.csdn.net/xietansheng/article/details/52689384; 1. 應用內的程式碼截圖(獲取View的快照) Android的View類中提供了獲取控制元件繪製快取的方法,這種截圖的方式僅限於應用內
Android中Listview實現點贊功能
最近這段時間一直在看Android,利用Listview去實現點贊功能 基本思路: 進入介面–》獲取資料–》 在Listview中顯示–》 通過map集合(position,boolean)儲存每一行是否被點選–》 利用實體類去儲存相應的物件–》 g
Unity 截圖功能(安卓、IOS)
我們在一些專案中可能需要截圖儲存功能(特別是AR的一些專案),將截下來的圖儲存的相簿中,從而實現分享功能。下面就Android和IOS說一下他們是如何將圖片儲存到本地圖冊的。 關於安卓端,儲存到相簿方法很簡單,就是也路徑的問題,具體方法如下: public class
React Native呼叫Android原生程式碼實現車牌識別功能【附效果圖附原始碼】
這段時間研究了下React Native,Facebook推出的,結合了Web應用和Native應用的優勢,可以使用JavaScript來開發iOS和Android原生應用,決定簡單研究下,於是開始搭建環境,編寫HelloWorld,完成後又覺得HelloWo
Appium+JAVA實現截圖功能
接觸Appium時間不長,以下是截圖方法程式碼,做個筆記備忘。 //截圖 public void test(WebDriver driver){ File screen = ((RemoteWebDriver) driver).
在一張圖片上實現截圖功能
C++實現的在一張圖片上截圖,在此記錄兩種方便的截圖方式: 一、使用ATL和MFC 優點:多位元組編碼與Unicode通用 缺點:不能跨平臺 #include <atlimage.h> bool shot(const TCHAR* src_img, const
js 利用html2canvas實現截圖功能
需要匯入的檔案:jquery.min.js,html2canvas.js,canvas2image.js,jquery.qrcode.min.js(如需二維碼) var shareContent = document.getElementById("imgmodel");
Android模仿iOS實現側滑返回(類似微信)
actionbar fin kth ins any lean blog 模仿 over 我們都知道側滑返回操作是 iOS 裏面比較常見的功能,一般是手指在靠近手機屏幕左邊緣向右滑動就可以關閉當前的界面,iOS 系統提供了這樣的 API,但是 Android 怎麽實現呢? 網
vue實現復制功能(項目使用)
pre container audio all 自己 內容 erro con app 安裝依賴 npm install --save vue-clipboard2 用法: import Vue import VueClipboard from ‘vue-
android中圖片的三級cache策略(記憶體 檔案 網路) 一
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
資料結構-順序表的實現以及一些功能(c語言版本)
#define MAXSIZE 100 //MAXSIZE為線性表可能的最大長度 #include<stdio.h> typedef int ElemType; typedef struct { ElemType data[MAXSIZE]; int length
okhttp實現註冊登入功能(與伺服器端)
請求方式:POST引數 :username,passwordURL : http://**************/register?(這個我就不貼上來了)返回值:{status:400, msg:"註冊失敗", data:null}{status:200, msg:"註冊
(一)如何使用Spring-security來實現登入驗證功能(XML配置方式)?
先從使用xml的方式來實現使用者的許可權登入 (1)需要在maven工程中加上關於spring-secutity的jar包的依賴 //spring-securityd 有關的依賴 <
Jedis實現Publish/Subscribe功能(釋出和訂閱)
Redis為我們提供了publish/subscribe(釋出/訂閱)功能。我們可以對某個channel(頻道)進行subscribe(訂閱),當有人在這個channel上publish(釋出)訊息時,redis就會通知我們,這樣我們可以收到別人釋出的訊息。 作為Java的redis客戶端,Jedis提