2

CameraX に基づいてカメラ アプリを構築しようとしており、カメラ プレビューのボケ (ぼかし) 効果を有効にしたいと考えています。これは CameraX 拡張機能によって行われる可能性がありますが、それらを有効にする方法は?

Android Developer Docsでベンダー拡張機能に関する記事を読みました。私は彼らのアプローチを再利用しようとしましたが、例に示されているクラスは CameraX には含まれていませんalpha-02

import androidx.camera.extensions.BokehExtender;

void onCreate() {
    // Create a Builder same as in normal workflow.
    ImageCaptureConfig.Builder builder = new ImageCaptureConfig.Builder();

    // Create a Extender object which can be used to apply extension
    // configurations.
    BokehImageCaptureExtender bokehImageCapture = new
            BokehImageCaptureExtender(builder);

    // Query if extension is available (optional).
    if (bokehImageCapture.isExtensionAvailable()) {
        // Enable the extension if available.
        bokehImageCapture.enableExtension();
    }

    // Finish constructing configuration with the same flow as when not using
    // extensions.
    ImageCaptureConfig config = builder.build();
    ImageCapture useCase = new ImageCapture(config);
    CameraX.bindToLifecycle((LifecycleOwner)this, useCase);
}

インポートされると思っBokehImageCaptureExtenderていましたが、まだ提供されていないようです。そして、パッケージ全体androidx.camera.extensionsが欠落しています。

このクラスは、公式のAndroidX git リポジトリにありますが、完全な AndroidX プロジェクトをインポートせずにセットアップするのは困難です。

4

3 に答える 3

0

あなたの質問を編集し、ここを見ると、あなたが示したコード サンプルはJavaですが、Kotlinを識別子として使用しています。正しい言語を使用していることを確認してください。これが問題かもしれません。

これは、Android Developer DocsのKotlinサンプルです。

import androidx.camera.extensions.BokehExtender

fun onCreate() {
    // Create a Builder same as in normal workflow.
    val builder = ImageCaptureConfig.Builder()

    // Create a Extender object which can be used to apply extension
    // configurations.
    val bokehImageCapture = BokehImageCaptureExtender.create(builder)

    // Query if extension is available (optional).
    if (bokehImageCapture.isExtensionAvailable()) {
        // Enable the extension if available.
        bokehImageCapture.enableExtension()
    }

    // Finish constructing configuration with the same flow as when not using
    // extensions.
    val config = builder.build()
    val useCase = ImageCapture(config)
    CameraX.bindToLifecycle(this as LifecycleOwner, useCase)
}

これは、Android Developer DocsのJavaサンプルです。

import androidx.camera.extensions.BokehExtender;

void onCreate() {
    // Create a Builder same as in normal workflow.
    ImageCaptureConfig.Builder builder = new ImageCaptureConfig.Builder();

    // Create a Extender object which can be used to apply extension
    // configurations.
    BokehImageCaptureExtender bokehImageCapture = new
            BokehImageCaptureExtender(builder);

    // Query if extension is available (optional).
    if (bokehImageCapture.isExtensionAvailable()) {
        // Enable the extension if available.
        bokehImageCapture.enableExtension();
    }

    // Finish constructing configuration with the same flow as when not using
    // extensions.
    ImageCaptureConfig config = builder.build();
    ImageCapture useCase = new ImageCapture(config);
    CameraX.bindToLifecycle((LifecycleOwner)this, useCase);
}
于 2019-06-26T21:09:57.083 に答える