我正在尝试基于CameraX构建相机应用程序,并希望为相机预览启用散景(模糊)效果。这可以通过CameraX扩展来完成,但是如何启用它们?
我已经在Android Developer Docs阅读了有关供应商扩展的文章。我试图重用他们的方法,但是CameraX var request = await client.FetchAccountInfoAsync(new Acklann.Plaid.Auth.GetAccountInfoRequest()
{
AccessToken = accessToken.AccessToken,
ClientId = "<clientid>",
Secret = "<secret>",
Options = new Acklann.Plaid.Auth.GetAccountInfoOptions
{
AccountIds = bankId
}
});
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 git repository上找到,但是如果不导入完整的AndroidX项目,则很难进行设置。
答案 0 :(得分:0)
我刚刚注意到编辑问题,并here选择显示为 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);
}
答案 1 :(得分:0)
扩展名在Google Maven上仍然不可用 https://dl.google.com/dl/android/maven2/index.html
答案 2 :(得分:0)
Android CameraX扩展仅存在于以下版本中:“ 1.0.0-alpha01” 。
降级您的相机版本: //相机Jetpack库
def camerax_version = "1.0.0-alpha01"
implementation "androidx.camera:camera-core:$camerax_version"
implementation "androidx.camera:camera-camera2:$camerax_version"
implementation "androidx.camera:camera-extensions:$camerax_version"