谷歌刚刚发布了Cloud Firestore,这是他们针对应用的新文档数据库.
我一直在阅读文档但我没有看到Firestore和Firebase DB之间存在很多差异.
重点是Firestore使用的文档和集合与Firebase相比,可以轻松使用查询,Firebase是一个带有JSON基础的传统noSQL数据库.
我想更多地了解他们的差异或用法,或者Firestore是否刚刚取代Firebase DB?
firebase google-cloud-platform firebase-realtime-database google-cloud-firestore
我最近看到Google I/O Room Persistence Library上宣布的新功能与Android上的Sqlite数据库一起使用.我一直在寻找官方文档,我没有找到我应该导入到我的Android项目上的gradle文件的依赖项.有人可以帮个忙吗?
我最近在学习和阅读很多关于Flow和 Kotlin 协程的内容。但是我仍然对什么时候应该使用Flow
以及什么时候应该使用Channel
.
一开始看起来更简单。使用热数据流?Channel
. 冷的?Flows
. 如果您需要从多个地方收听数据流,情况也是如此;如果是这样的话Channel
是选择去。还有很多例子和问题。
但是最近FlowChannels
引入了大量方法和类,这些方法和类鼓励使用Flow
,转换Channels
成哪些设施Flows
等等。随着每个 Kotlin 版本中出现所有这些新东西,我越来越困惑。所以问题是:
什么时候应该使用Channel,什么时候应该使用Flow?
我正在开发基于的相机应用程序Camera API 2
,我发现使用libyuv有几个问题.我想转换YUV_420_888
从ImageReader中检索到的图像,但是我在可重复处理的表面中进行缩放时遇到了一些问题.
本质上:图像以绿色调而不是具有相应的音调(我正在导出.yuv文件并使用http://rawpixels.net/检查它们).
我认为我在步幅方面做错了,或提供了无效的YUV格式(也许我必须将图像转换为另一种格式?).但是,我无法弄清楚错误在哪里,因为我不知道如何将绿色与缩放算法相关联.
这是我正在使用的转换代码,您可以忽略返回NULL,因为还有与问题无关的进一步处理.
#include <jni.h>
#include <stdint.h>
#include <android/log.h>
#include <inc/libyuv/scale.h>
#include <inc/libyuv.h>
#include <stdio.h>
#define LOG_TAG "libyuv-jni"
#define unused(x) UNUSED_ ## x __attribute__((__unused__))
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS_)
struct YuvFrame {
int width;
int height;
uint8_t *data;
uint8_t *y;
uint8_t *u;
uint8_t *v;
};
static struct YuvFrame i420_input_frame;
static struct YuvFrame i420_output_frame;
extern "C" {
JNIEXPORT jbyteArray JNICALL
Java_com_android_camera3_camera_hardware_session_output_photo_yuv_YuvJniInterface_scale420YuvByteArray(
JNIEnv *env, …
Run Code Online (Sandbox Code Playgroud) 最近我将我的数据模型从Firebase移到了Firestore.我的所有代码都正常工作,但是我的嵌套查询有一些丑陋的问题需要检索一些数据.这是重点:
现在我的这个部分的数据模型看起来像这样(是的!另一个粉丝/饲料示例):
{
"Users": { //Collection
"UserId1" : { //Document
"Feed" : { //Subcollection of Id of posts from users this user Follow
"PostId1" : { //Document
"timeStamp" : "SomeDate"
},
"PostId2" : {
"timeStamp" : "SomeDate"
},
"PostId3" : {
"timeStamp" : "SomeDate"
}
}
//Some data
}
},
"Posts":{ //Collection
"PostId1":{ //Document
"Comments" :{ //Subcollection
"commentId" : { //Document
"authorId": "UserId1"
//comentsData
}
},
"Likes" : { //Subcollection
"UserId1" : { //Document
"liked" : true
}
}
} …
Run Code Online (Sandbox Code Playgroud) database data-modeling nosql firebase google-cloud-firestore
在过去的几个月里,我一直在玩和构建一个完整的 compose 应用程序。我的项目已经发展壮大,现在有了 Kodein 和其他已经与 compose 配合使用的库,我开始意识到有时 IDE 构建应用程序只是为了显示简单的预览是多么缓慢。在一个新项目中更改代码、在 3-5 秒内编译并查看结果真是太棒了。
但现在,即使代码的更改很小,也需要 30 到 60 秒。
目前有什么方法可以提高预览和撰写项目的构建速度性能吗?
我正在使用camera2,我在缩略图中长按后显示我的照片/视频的预览.另外,我正在根据拍摄照片时相机的方向旋转它.例如,如果我在90º拍摄照片,我的预览也会旋转90º.
一切正常,我正在使用customContainer,我正在使用onLayout和OnMeasure来创建我的预览,具体取决于屏幕的大小,宽高比和方向.它适用于照片.当我尝试对视频执行相同操作时,我的问题就出现了,它们只能在0º工作.
我试图旋转包含我的MediaPlayer的TextureView但在此之后我的onLayout变得疯狂并且不可能找到(l,t,r,b)组合来正确测量它.
这是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<com.android.camera.ui.common.ThumbnailContainer xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/preview_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/rounded_rectangle_thumbnail_preview"
android:visibility="invisible">
<TextureView
android:id="@+id/show_video_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="invisible"/>
<ImageView
android:id="@+id/image_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:visibility="invisible"
/>
</com.android.camera.ui.common.ThumbnailContainer>
Run Code Online (Sandbox Code Playgroud)
这是我的Surface代码:
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
Log.i(TAG, "InicializoSurface. Width: " + width + " HEIGHT:" + height);
Log.i(TAG, "InicializoSurface. Width: " + mVideoView.getMeasuredWidth() + " HEIGHT:" + mVideoView.getMeasuredHeight());
Log.i(TAG, "View transform. Width: " + mVideoView.getWidth() + " HEIGHT:" + mVideoView.getHeight());
mMediaSurface = new Surface(mVideoView.getSurfaceTexture());
initializeMediaPlayer();
}
@Override
public …
Run Code Online (Sandbox Code Playgroud) 我期待着一种在LazyColumn
列表上滚动时实现折叠效果的方法。我一直在检查文档,但没有发现任何相关内容。我该如何实施?
目前,我在BottomNavigation
我的内部使用了一个设置Scaffold
,我可以将来自脚手架内容 lambda 的内部填充添加到屏幕上。但我没有找到任何类型的可滚动状态或类似的状态。
与 Kotlin 多平台项目抗争 我已经结束了与 Kotlin Native一起工作时需要NsData
在我的 iOS 平台上工作的问题sharedModule
。
因此,我需要将objectiveC 转换NsData
为KotlinByteArray
并返回。我怎样才能做到这一点?
我正在使用语音识别应用程序,我想在录制时让我的播放/停止按钮"脉冲".像这样的东西:
我试图制作一个ScaleAnimation,按钮增长,但当然,它会使所有按钮增长.
public static ObjectAnimator pulseAnimation(ImageView target){
ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(target,
PropertyValuesHolder.ofFloat("scaleX", 1.1f),
PropertyValuesHolder.ofFloat("scaleY", 1.1f));
scaleDown.setDuration(310);
scaleDown.setRepeatCount(ObjectAnimator.INFINITE);
scaleDown.setRepeatMode(ObjectAnimator.REVERSE);
return scaleDown;
}
Run Code Online (Sandbox Code Playgroud)
所以这个想法是实现类似的东西,但只是在实际按钮后面有一个alpha.我想知道是否可以使用alpha动画或其他东西在我的按钮后面添加第二个"Alpha Button"以使其增长并实现此效果.
android button scaletransform android-animation android-imageview