我正在尝试使用 CameraX API 来获取照片,但是在我更新到新的 API 版本 1.0.0-alpha06 后,它开始崩溃
CameraX.bindToLifecycle(...)
Run Code Online (Sandbox Code Playgroud)
方法。
错误日志是:
Process: com.aximetria.aximetria.debug, PID: 2629
java.lang.BootstrapMethodError: Exception from call site #2 bootstrap method
at androidx.camera.core.Preview.updateListener(Preview.java:368)
at androidx.camera.core.Preview.updateOutput(Preview.java:586)
at androidx.camera.core.Preview.updateConfigAndOutput(Preview.java:363)
at androidx.camera.core.Preview.onSuggestedResolutionUpdated(Preview.java:524)
at androidx.camera.core.UseCase.updateSuggestedResolution(UseCase.java:408)
at androidx.camera.core.CameraX.calculateSuggestedResolutions(CameraX.java:684)
at androidx.camera.core.CameraX.bindToLifecycle(CameraX.java:195)
at com.aximetria.aximetria.ui.main.profile.avatar.TakeAvatarPhotoFragment.initCamera(TakeAvatarPhotoFragment.kt:169)
at com.aximetria.aximetria.ui.main.profile.avatar.TakeAvatarPhotoFragment.initCamera$default(TakeAvatarPhotoFragment.kt:117)
at com.aximetria.aximetria.ui.main.profile.avatar.TakeAvatarPhotoFragment$onViewCreated$1.onPermissionsChecked(TakeAvatarPhotoFragment.kt:55)
...
Run Code Online (Sandbox Code Playgroud)
我的代码是:
private fun initCamera(reverseFacing: Boolean = false) {
...
val previewConfig = PreviewConfig.Builder()
.setTargetAspectRatio(AspectRatio.RATIO_4_3)
.setLensFacing(lensFacing)
.build()
val preview = Preview(previewConfig)
preview.setOnPreviewOutputUpdateListener { previewOutput ->
val parent = binding.preview.parent as ViewGroup
parent.removeView(binding.preview)
parent.addView(binding.preview, 0)
binding.preview.surfaceTexture = previewOutput.surfaceTexture …Run Code Online (Sandbox Code Playgroud) 我正在使用 Jetpack compose 开发一个应用程序,并且在 Jetpack 预览期间遇到字体导入问题。预览为空并显示错误(渲染问题):
Font resource ID #0x... cannot be retrieved
Run Code Online (Sandbox Code Playgroud)
例如,在自定义视图中,我们有一个
isInEditMode
Run Code Online (Sandbox Code Playgroud)
在设计部分控制布局预览,我们可以禁用一些破坏预览的逻辑。
有什么方法可以为 Jetpack @Preview 做到这一点吗?我目前阅读了所有可用的文档/文章,但没有找到答案。
非常感谢您提供任何信息。
Jetpack Compose 代码是:
@Composable
fun ScreenContent() {
Row(
modifier = Modifier
.wrapContentSize()
.fillMaxWidth()
.clip(RoundedCornerShape(50))
.background(colorResource(id = R.color.search_field_background_color)),
horizontalArrangement = Arrangement.Center
) {
Icon(
painterResource(id = R.drawable.ic_search_image), contentDescription = stringResource(R.string.search_screen_magnifier_icon_content_description)
)
Text(
modifier = Modifier.padding(all = 8.dp),
text = stringResource(R.string.search_screen_search_field_text),
fontSize = 12.sp,
color = colorResource(id = R.color.search_field_text_color),
fontFamily = getFont(R.font.nunito_sans_extra_bold)
)
}
}
//according to the plan this method …Run Code Online (Sandbox Code Playgroud) android android-jetpack-compose android-jetpack-compose-preview
如何以编程方式打开(在屏幕上显示)NavigationView?我找不到任何可以帮助的功能.
我有这个xml文件:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
//...
<android.support.design.widget.NavigationView
android:id="@+id/navigation"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header"
app:itemTextColor="#333"
app:itemIconTint="#333"
app:menu="@menu/navigation_drawer_items" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud) 从更新后
androidx.camera:camera-core:1.0.0-alpha03
Run Code Online (Sandbox Code Playgroud)
至
androidx.camera:camera-core:1.0.0-alpha06
Run Code Online (Sandbox Code Playgroud)
setTargetAspectRatio(在ImageCaptureConfig.Builder中)和takePicture(在ImageCapture中)的签名已更改。
网络上的官方文档和信息并未显示如何使用新方法(如何指定执行程序)。
更新后损坏的代码:
...
val captureConfig = ImageCaptureConfig.Builder()
.setTargetAspectRatioCustom(Rational(1, 1)) //this method changed
.setFlashMode(flashMode)
.setLensFacing(lensFacing)
.build()
val capture = ImageCapture(captureConfig)
binding.takeAPhoto.setOnClickListener {
...
val imageFile = createTempFile(System.currentTimeMillis().toString(), ".jpg")
capture.takePicture(imageFile, object : ImageCapture.OnImageSavedListener { //this method also changed
override fun onImageSaved(file: File) {
...
}
override fun onError(useCaseError: ImageCapture.UseCaseError, message: String, cause: Throwable?) {
...
})
}
}
Run Code Online (Sandbox Code Playgroud)
是否有人拥有(或知道在哪里可以找到)如何使用新方法的示例?提前致谢