如何在图像分析中将帧速率降低到 1 fps,这样我就不会多次检测到条形码。在我的用例中,以 1 秒的间隔多次扫描相同的条形码应该会增加一个计数器。所以我希望它能够正常工作。(类似于商店收银台的产品扫描仪)
cameraX版本:1.0.0-beta02
类似问题:
如何使用 Android CameraX ImageAnalysis 提高帧速率?
在此,答案基于cameraX alpha 版本中的预览配置和分析配置构建器。但在测试版中并没有找到它。
如何在使用 SurfaceView 中的 ByteBuffer 时在 android ML-kit 中暂停条形码扫描
在此,图像分析受到限制,但我希望对图像分析器的调用以较低的帧速率进行。即从图像分析用例到图像分析器的调用应该每秒一次。
目前的实施:
https://proandroiddev.com/update-android-camerax-4a44c3e4cdcc
按照此文档,限制图像分析。
override fun analyze(image: ImageProxy) {
val currentTimestamp = System.currentTimeMillis()
if (currentTimestamp - lastAnalyzedTimestamp >= TimeUnit.SECONDS.toMillis(1)) {
// Image analysis code
}
image.close()
}
Run Code Online (Sandbox Code Playgroud)
更好的解决方案会有所帮助。
在片段中,我们有
private val activityViewModel: MainActivityViewModel by activityViewModels()
private val fragmentViewModel: MainFragmentViewModel by viewModels()
Run Code Online (Sandbox Code Playgroud)
获取整个应用程序中的共享视图模型(活动视图模型)和视图特定视图模型(片段视图模型)的实例。
我正在迁移以作曲。
如何在jetpack compose中获得两个具有不同范围的视图模型?
从文档中,我可以看到这一行,
viewModel() 返回一个现有的 ViewModel 或在给定范围内创建一个新的 ViewModel。
但是,如何指定视图模型的范围?
PS
我已经解决了这个类似的问题,但没有任何答案。
我用来react-query调用API。该调用运行良好,并且每次在输入字段中更新查询值时都会执行该调用。
不幸的是,即使查询为空,它也会触发 API 调用。
例如,当用户加载应用程序时,输入(以及查询)将为空。
如何仅在有查询时触发API调用?
代码
// API call
export async function myQuery(query) {
try {
const res = await ax.get("myapiurl", {
params: { query },
});
return res.data;
} catch {
return null;
}
}
// react-query
const { status, data } = useQuery(
["myquery", { query }],
() => myQuery(query)
);
Run Code Online (Sandbox Code Playgroud) 我正在使用 Firebase Emulator Suite来测试我的 Firebase Cloud Functions,然后再将其部署到生产中。
探索这种方法以从我的 Andriod 设备触发可调用的 firebase 云函数。
我的应用程序在运行时崩溃了。
错误:
java.lang.IllegalStateException:实例已初始化后无法调用 useEmulator()。
错误来源 - FirebaseFirestore.java:
/**
* Modifies this FirebaseDatabase instance to communicate with the Cloud Firestore emulator.
*
* <p>Note: Call this method before using the instance to do any database operations.
*
* @param host the emulator host (for example, 10.0.2.2)
* @param port the emulator port (for example, 8080)
*/
public void useEmulator(@NonNull String host, int port) {
if …Run Code Online (Sandbox Code Playgroud) android firebase firebase-tools google-cloud-functions google-cloud-firestore
我尝试在我的应用程序中为完全使用 Jetpack compose 编写的电子邮件和密码提供一些自动填充功能。使用此功能后,我实现了自动填充,但更改密码后它仍然是旧密码。有没有什么想法可以让谷歌了解某个地方的新情况,也许在更改密码或最好使用新密码登录后,向用户询问“想要更新密码吗?”这样的问题?
目前,更改密码操作中没有任何与自动填充功能相关的功能。
登录页面:
OutlinedTextField(
modifier = landscapeTextModifier
.padding(top = 20.dp)
.autofill(
autofillTypes = listOf(AutofillType.EmailAddress),
onFill = { loginViewModel.email.value = it },
),
value = loginViewModel.email.value,
onValueChange = { loginViewModel.email.value = it.trim() },
// some other things
)
OutlinedTextField(
modifier = landscapeTextModifier
.padding(top = 10.dp)
.autofill(
autofillTypes = listOf(AutofillType.Password),
onFill = { loginViewModel.password.value = it },
),
value = loginViewModel.password.value,
onValueChange = { loginViewModel.password.value = it },
// some other things
)
Run Code Online (Sandbox Code Playgroud) 我有一个屏幕,带有TextFields. 我需要第一个TextField在屏幕显示时自动聚焦。
缩小的示例代码
@Composable
fun ScreenView(
data: ScreenViewData,
) {
val focusManager = LocalFocusManager.current
val focusRequester = remember {
FocusRequester()
}
LaunchedEffect(
key1 = Unit,
) {
focusRequester.requestFocus()
}
Scaffold() { innerPadding ->
Column {
OutlinedTextField(
modifier = Modifier.focusRequester(focusRequester),
)
}
}
}
Run Code Online (Sandbox Code Playgroud)
该代码可以正常运行,没有任何问题。
但是,在撰写 UI 测试时,我收到以下错误。
java.lang.IllegalStateException:
FocusRequester 未初始化。以下是一些可能的修复方法:
- 记住 FocusRequester: val focusRequester = Remember { FocusRequester() }
- 您是否忘记添加 Modifier.focusRequester() ?
- 您是否试图在构图过程中要求焦点?
应针对某些事件发出焦点请求。例如 Modifier.clickable { focusRequester.requestFocus() }
测试代码
@ExperimentalAnimationApi
class ScreenViewTest {
@get:Rule
val composeTestRule …Run Code Online (Sandbox Code Playgroud) android kotlin android-jetpack-compose android-jetpack-compose-testing
我已经阅读了有关可组合函数的官方文档
但我无法理解可组合函数。
例如,rememberWatchState()是Composable代码 A 中的一个函数,但它不像普通函数那样定义我的应用程序的 UI。
Android中的Composable函数和普通函数有什么区别?
代码A
@Composable
fun ScreenHome_Watch(
watchState:WatchState = rememberWatchState()
){
val density= watchState.density
}
@Composable
fun rememberWatchState(): WatchState {
val context: Context = LocalContext.current
val temp = loadDBWarningValueWithPreference(context)
val watchState = WatchState(temp.toFloat(),LocalDensity.current)
return remember {
watchState
}
}
class WatchState(
private val alarmValue:Float,
val density: Density
){
...
}
fun drawDial(
drawScope: DrawScope,
watchState:WatchState
) {
...
}
Run Code Online (Sandbox Code Playgroud) 我发现一篇文章描述了如何在LazyColumn中实现视差视图,有这样一个方法:
@Composable
fun ImageParallaxScroll() {
val lazyListState = rememberLazyListState()
val list = (0..1_000).map{ "Item $it" }.toList()
val firstItemTranslationY: LazyListState by remember {
derivedStateOf {
when {
lazyListState.layoutInfo.visibleItemsInfo.isNotEmpty() && lazyListState.firstVisibleItemIndex == 0 -> lazyListState.firstVisibleItemScrollOffset * .6f
else -> 0f
}
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
问题是整个remember下划线块都带有红线,并且出现这样的错误:
Type 'TypeVariable(T)' has no method 'getValue(Nothing?, KProperty<*>)' and thus it cannot serve as a delegate
Run Code Online (Sandbox Code Playgroud)
不明白这里有什么问题?
android android-jetpack android-jetpack-compose android-compose-textfield
android ×8
android-jetpack-compose-testing ×1
autofill ×1
css ×1
firebase ×1
html ×1
jquery ×1
kotlin ×1
react-query ×1
reactjs ×1