Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android:通過ThumbnailUtils類獲取視頻文件的縮略圖

Android:通過ThumbnailUtils類獲取視頻文件的縮略圖

編輯:關於Android編程

在視頻播放器上經常會看到,有很多的視頻縮略圖,本文講的就是通過ThumbnailUtils類獲取視頻文件的縮略圖;

運行截圖如下:
這裡寫圖片描述

代碼如下:

MainActivity.java:

package com.vrinux.thumbnailutilsdemo;

import android.app.Activity;
import android.graphics.Bitmap;
import android.media.ThumbnailUtils;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.widget.ImageView;

public class MainActivity extends Activity {

    //定義一個ImageView對象imgObj;
    private ImageView imgObj;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //獲取對象imgObj;
        imgObj = (ImageView) findViewById(R.id.imgid);

        //定義一個視頻文件路徑;
        String filePath = null;

        //視頻文件的名字;
        String filename = video.3gp;

        //判斷SDCard是否掛載;由於Android版本的掛載路徑不盡相同,所以建議使用一下的方法判斷;
        if (Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED)) {
            //獲取SDCard根的路徑
            String sdPath = Environment.getExternalStorageDirectory().getPath();

            //將SDCard根路徑和文件名組裝得到視頻文件的路徑;
            filePath = sdPath + / + filename;

            //調用下面定義的方法,獲得指定大小的視頻截圖;
            //最後的參數本人不太清楚是什麼意思,只是這麼用,其源碼並非開源;
            Bitmap bitmap = getVidioBitmap(filePath, 400, 400,
                    MediaStore.Images.Thumbnails.MICRO_KIND);

            //將獲得的位圖用imgObj顯示;
            imgObj.setImageBitmap(bitmap);
        }

    }

    public Bitmap getVidioBitmap(String filePath, int width, int height,
            int kind) {
        //定義一個Bitmap對象bitmap;
        Bitmap bitmap = null;

        //ThumbnailUtils類的截取的圖片是保持原始比例的,但是本人發現顯示在ImageView控件上有時候有部分沒顯示出來;
        //調用ThumbnailUtils類的靜態方法createVideoThumbnail獲取視頻的截圖;
        bitmap = ThumbnailUtils.createVideoThumbnail(filePath, kind);

        //調用ThumbnailUtils類的靜態方法extractThumbnail將原圖片(即上方截取的圖片)轉化為指定大小;
        //最後一個參數的具體含義我也不太清楚,因為是閉源的;
        bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,
                ThumbnailUtils.OPTIONS_RECYCLE_INPUT);

        //放回bitmap對象;
        return bitmap;
    }
}

 


    

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved