ImageReader是Android中用于從Camera、Surface、MediaCodec等創建Image對象的類。以下是一個簡單的示例代碼,演示如何使用ImageReader類:
private ImageReader mImageReader;
// 在onCreate方法中初始化ImageReader
mImageReader = ImageReader.newInstance(width, height, ImageFormat.JPEG, maxImages);
// 設置ImageReader的回調監聽器
mImageReader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
// 當有新的Image可用時會回調這個方法
Image image = reader.acquireLatestImage();
// 處理Image對象
// 釋放Image資源
image.close();
}
}, null);
// 在需要獲取Image的地方獲取Image對象
Image image = mImageReader.acquireLatestImage();
if (image != null) {
// 處理Image對象
// 釋放Image資源
image.close();
}
在上面的代碼中,首先通過調用ImageReader.newInstance方法來創建一個ImageReader對象。然后通過設置OnImageAvailableListener監聽器來監聽Image的可用性。在監聽器的onImageAvailable方法中,可以通過調用acquireLatestImage方法獲取最新的可用Image對象。在需要獲取Image對象的地方,也可以通過調用acquireLatestImage方法獲取最新的可用Image對象。最后,處理完Image對象后,調用close方法來釋放Image資源。
需要注意的是,在使用完Image對象后,一定要調用close方法來釋放資源,否則會導致內存泄漏。