小编Fra*_*cia的帖子

Cloud Firestore和Firebase实时数据库之间有什么区别?

谷歌刚刚发布了Cloud Firestore,这是他们针对应用的新文档数据库.

我一直在阅读文档但我没有看到Firestore和Firebase DB之间存在很多差异.

重点是Firestore使用的文档和集合与Firebase相比,可以轻松使用查询,Firebase是一个带有JSON基础的传统noSQL数据库.

我想更多地了解他们的差异或用法,或者Firestore是否刚刚取代Firebase DB?

firebase google-cloud-platform firebase-realtime-database google-cloud-firestore

198
推荐指数
4
解决办法
5万
查看次数

如何将Room Persistence Library导入Android项目

我最近看到Google I/O Room Persistence Library上宣布的新功能与Android上的Sqlite数据库一起使用.我一直在寻找官方文档,我没有找到我应该导入到我的Android项目上的gradle文件的依赖项.有人可以帮个忙吗?

sqlite android android-sqlite android-room

45
推荐指数
6
解决办法
3万
查看次数

Kotlin 协程:通道与流

我最近在学习和阅读很多关于Flow和 Kotlin 协程的内容。但是我仍然对什么时候应该使用Flow以及什么时候应该使用Channel.

一开始看起来更简单。使用热数据流?Channel. 冷的?Flows. 如果您需要从多个地方收听数据流,情况也是如此;如果是这样的话Channel是选择去。还有很多例子和问题。

但是最近FlowChannels引入了大量方法和类,这些方法和类鼓励使用Flow,转换Channels成哪些设施Flows等等。随着每个 Kotlin 版本中出现所有这些新东西,我越来越困惑。所以问题是:

什么时候应该使用Channel,什么时候应该使用Flow

channel stream kotlin kotlin-coroutines

36
推荐指数
3
解决办法
8003
查看次数

使用libyuv库缩放YUV图像时出现的问题

我正在开发基于的相机应用程序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)

c++ android image yuv libyuv

27
推荐指数
1
解决办法
2148
查看次数

在Firestore中使用嵌套的单个查询

最近我将我的数据模型从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

27
推荐指数
1
解决办法
4074
查看次数

Jetpack Compose 构建性能缓慢

在过去的几个月里,我一直在玩和构建一个完整的 compose 应用程序。我的项目已经发展壮大,现在有了 Kodein 和其他已经与 compose 配合使用的库,我开始意识到有时 IDE 构建应用程序只是为了显示简单的预览是多么缓慢。在一个新项目中更改代码、在 3-5 秒内编译并查看结果真是太棒了。

但现在,即使代码的更改很小,也需要 30 到 60 秒。

目前有什么方法可以提高预览和撰写项目的构建速度性能吗?

android build android-jetpack-compose

18
推荐指数
1
解决办法
3062
查看次数

在TextureView中旋转Video/MediaPlayer

我正在使用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)

video layout camera android android-mediarecorder

9
推荐指数
1
解决办法
4912
查看次数

在 Jetpack Compose 上滚动时折叠导航底部栏

我期待着一种在LazyColumn列表上滚动时实现折叠效果的方法。我一直在检查文档,但没有发现任何相关内容。我该如何实施?

目前,我在BottomNavigation我的内部使用了一个设置Scaffold,我可以将来自脚手架内容 lambda 的内部填充添加到屏幕上。但我没有找到任何类型的可滚动状态或类似的状态。

android android-jetpack-compose

8
推荐指数
1
解决办法
5017
查看次数

如何将 Kotlin ByteArray 转换为 NsData,反之亦然

与 Kotlin 多平台项目抗争 我已经结束了与 Kotlin Native一起工作时需要NsData在我的 iOS 平台上工作的问题sharedModule

因此,我需要将objectiveC 转换NsData为KotlinByteArray并返回。我怎样才能做到这一点?

kotlin kotlin-native kotlin-multiplatform

7
推荐指数
1
解决办法
1543
查看次数

Android中的脉动按钮动画

我正在使用语音识别应用程序,我想在录制时让我的播放/停止按钮"脉冲".像这样的东西:

在此输入图像描述

我试图制作一个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

6
推荐指数
1
解决办法
1万
查看次数