小编Tob*_*ann的帖子

Android:自定义最近的应用缩略图(默认为屏幕截图)

我正在处理的应用程序显示了一些敏感信息,当按下主页按钮停止应用程序时,这些信息不能显示在"近期任务"屏幕上.

我想模糊屏幕截图中的敏感数据或显示应用徽标.

我知道以下方法,但它们不符合我的要求:

然后我尝试了一些解决方法,但是没有按预期工作:

  • 启动一个显示应用徽标的新活动,以便显示onPause屏幕截图,而不是实际的活动屏幕截图.但新活动需要很长时间才能打开,这会破坏用户体验.
  • 将activitie的内容视图设置为应用徽标的图像onPause.这对我来说似乎是一个很好的解决方案.不幸的是,最近任务屏幕的屏幕截图是在未指定的时间进行的.在测试期间,在按下"主页"时应用程序关闭之前会快速显示应用程序徽标,但生成的屏幕截图会在此之前的短时间内显示活动.
  • 从小部件中移除敏感数据(例如textView.setText(""))具有与刚刚提到的屏幕截图定时相同的问题.

列出的解决方法的任何其他想法或解决方案?

java android

53
推荐指数
2
解决办法
6190
查看次数

Kotlin:使用自定义setter时没有延迟的解决方法?

在我的活动中,我有一个应该是不可为空的字段,并且有一个自定义setter.我想在我的onCreate方法中初始化字段,所以我添加lateinit到我的变量声明中.但是,显然你不能这样做(目前):https://discuss.kotlinlang.org/t/lateinit-modifier-is-not-allowed-on-custom-setter/1999.

这些是我能看到的解决方法:

  • 用Java方式做.使字段可为空并使用null初始化它.我不想那样做.
  • 使用类型的"默认实例"初始化字段.这就是我现在所做的.但是对于某些类型来说这太昂贵了.

有人可以推荐一种更好的方式(不涉及删除自定义设置器)吗?

android kotlin

12
推荐指数
2
解决办法
2512
查看次数

在 Vue 中保留 <span> 之间的空格

在我的 Vue 3 应用程序中,我想突出显示文本中的单词,例如以下 HTML 中的单词:

span {
  background-color: yellow;
}
Run Code Online (Sandbox Code Playgroud)
<span>foo</span> 
<span>bar</span> 
baz 
qux
Run Code Online (Sandbox Code Playgroud)

然而,Vue 删除了标签之间的空格,因此 s 之间的间隙<span>消失了:

span {
    background-color: yellow;
}
Run Code Online (Sandbox Code Playgroud)
<span>foo</span><span>bar</span> baz qux
Run Code Online (Sandbox Code Playgroud)

如何保留<span>s 之间的空白?我无法使用&nbsp;,因为空格应该被打破,并且其他空白实体都没有与通常空间相同的大小。

html vue.js vuejs3

8
推荐指数
2
解决办法
5267
查看次数

在 RecyclerView 本身而不是在项目上设置 OnClickListener

我想OnClickListener在 a设置一个RecyclerView而不是在它的项目上设置,以便在用户点击时触发点击事件RecyclerView(即使它是空的或充满项目)。

  • 我正在使用 MVVM
  • 我试过了mRecyclerView.setClickable(true),不行

我想要的是

mRecyclerView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // do something
    }
});
Run Code Online (Sandbox Code Playgroud)

我的适配器类

public class TaskItemAdapter extends RecyclerView.Adapter<TaskItemAdapter.BaseItemAdapterViewHolder> {
    private static final String TAG = TaskItemAdapter.class.getSimpleName();
    private List<Task> mTaskList;
    private View.OnLongClickListener mOnLongClickListener;

    public TaskItemAdapter(List<Task> taskList, View.OnLongClickListener longClickListener) {
        mTaskList = taskList;
        mOnLongClickListener = longClickListener;
    }

    @NonNull
    @Override
    public BaseItemAdapterViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        if (parent instanceof RecyclerView) { …
Run Code Online (Sandbox Code Playgroud)

android onclicklistener android-recyclerview

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

image.tag(在 values.yaml 中)与 appVersion(在 Chart.yaml 中)

通过 新建 Helm 图表时helm create chart,Helm 将在 中创建一个appVersion字段Chart.yamlimage.tag在 中创建一个字段values.yaml

出于调试目的,可以方便地image.tag在部署时进行设置,而不必创建新图表。但是,否则,我会保持它们同步,因为我想在查看helm list.

尽管用于调试,是否有理由在部署文件中使用{{ .Values.image.tag }}而不是{{ .Chart.AppVersion }}

kubernetes-helm

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

如何拍摄照片并获取图像和缩略图?

我不敢相信我已经为这个简单的问题苦苦挣扎了几个小时,但我无法让它正常运行。原则上我想要这个功能:

用户单击一个按钮。的ACTION_IMAGE_CAPTURE意图解雇,默认的相机应用打开。用户拍摄照片并返回到我的应用程序。我的应用程序显示缩略图。单击缩略图打开图像查看器。

其实很简单。有了这个指南,它似乎是一个复制和粘贴的问题:https : //developer.android.com/training/camera/photobasics.html。但魔鬼在细节中。

目前,它确实有效,但性能很糟糕,因为我RecyclerView即时创建了缩略图(在我的实际应用程序中,我为 a 中的每个条目显示了多个缩略图)。我希望在搜索数十个 Stack Overlow 问题时我忽略了一个简单的方法。

理想情况下,我想激发我的ACTION_IMAGE_CAPTURE意图,让默认的相机应用程序生成缩略图,将缩略图和图像存储在系统的缩略图和图像内容提供程序中,最后将相应的 content:// URI 取回onActivityResult(). 那就太好了……

现在,这是我面临的问题:

  • 在调用getData()结果意图时收到的 URIonActivityResult()始终null是我是否MediaStore.EXTRA_OUTPUT与调用意图一起提供值
  • 省略MediaStore.EXTRA_OUTPUT额外内容时,我以位图的形式而不是 content:// URI 的形式获取缩略图。因此,如果我不想在下次开始活动时生成缩略图,我必须自己保留缩略图。
  • 我不明白如果我向相机传递一个 content:// URI 来保存图像,为什么我没有得到缩略图。我的意思是,相机已将图像加载到内存中,并且可以轻松生成缩略图。但是,我必须再次从磁盘加载多个 MB 才能生成缩略图。即使我保存缩略图以供以后使用,这似乎也是一种巨大的浪费。
  • 我已经读过一些相机应用程序实际上在任何情况下都会创建缩略图并将其提供给画廊或其他东西。但是好像没有标准化。

所以,我想我希望两个 content:// URI 不是它的工作原理。但在我继续自己生成(最终复制)缩略图并将它们持久化并缓存在我的应用程序中之前,我想问:

有什么我不知道的简单方法吗?是否可以同时检索图像和缩略图,还是必须自己生成缩略图?

注意:我希望通过让 Android 将我的应用程序拍摄的照片添加到媒体数据库中,将其提供给图库。我无法想象访问该媒体数据库(如画廊)的每个应用程序都会创建它自己的一组缩略图,对吗?

提前致谢!

android android-camera-intent

5
推荐指数
1
解决办法
1975
查看次数

PyTorch Lightning:同一 Tensorboard 图中的多个标量(例如训练和有效损失)

使用 PyTorch Tensorboard,我可以在单个 Tensorboard 图中记录我的训练和有效损失,如下所示:

writer = torch.utils.tensorboard.SummaryWriter()

for i in range(1, 100):
    writer.add_scalars('loss', {'train': 1 / i}, i)

for i in range(1, 100):
    writer.add_scalars('loss', {'valid': 2 / i}, i)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何使用 Pytorch Lightning 的默认 Tensorboard 记录器实现相同的效果?

def training_step(self, batch: Tuple[Tensor, Tensor], _batch_idx: int) -> Tensor:
    inputs_batch, labels_batch = batch

    outputs_batch = self(inputs_batch)
    loss = self.criterion(outputs_batch, labels_batch)

    self.log('loss/train', loss.item())  # creates separate graph

    return loss

def validation_step(self, batch: Tuple[Tensor, Tensor], _batch_idx: int) -> None:
    inputs_batch, labels_batch = batch

    outputs_batch = self(inputs_batch) …
Run Code Online (Sandbox Code Playgroud)

pytorch-lightning

5
推荐指数
1
解决办法
3975
查看次数

PHP CodeSniffer:错误:指定的嗅探代码“Generic.Files.LineEndings.InvalidEOLChar”无效

我试图在我的 Windows 机器上排除对 EOL 字符的检查总是导致此错误消息:

>vendor\bin\phpcs.bat --standard=PSR2 --exclude=Generic.Files.LineEndings.InvalidEOLChar src\version.php
ERROR: The specified sniff code "Generic.Files.LineEndings.InvalidEOLChar" is invalid

Run "phpcs --help" for usage information
Run Code Online (Sandbox Code Playgroud)

无法弄清楚我做错了什么。我已经通过 composer 安装了 PHP CodeSniffer 并且正在运行 3.4.0 版。

codesniffer phpcodesniffer phpcs

4
推荐指数
1
解决办法
597
查看次数

切换后的"缺少退货声明"(枚举) - 为什么?

编译器声称在结尾处缺少return语句MyClass.parse().这是代码:

package de.hs_rm.safelyovertaken.ble;

import android.support.annotation.NonNull;

import java.util.Arrays;

class MyClass {

    @NonNull
    static MyClass parse(byte[] encoded) throws MyParseException {

        MyEnum myEnum = MyEnum.parse(Arrays.copyOfRange(encoded, 0, 2));

        switch (myEnum) {
            case A:
                return new MyClassA();

            case B:
                return new MyClassB();

            case C:
                return new MyClassC();
        }

        // compile error: "Missing return statement"

//        return null; // should never be reached
//        throw new AssertionError("Should never be reached");
    }
}

enum MyEnum {
    A, B, C;

    @NonNull
    static MyEnum parse(byte[] encoded) throws …
Run Code Online (Sandbox Code Playgroud)

java enums compiler-errors

3
推荐指数
1
解决办法
420
查看次数

Android Studio在特殊字符(空格,句点等)上自动完成,如Visual Studio中所示

在Visual Studio中输入特殊字符时是否可以启用所选建议的自动完成?

例如:

当键入'MenuI'时,Android Studio会建议'MenuInflater',我可以通过点击TAB自动完成,之后我输入SPACE来分隔我的变量名称.

自动完成

在Visual Studio中,我可以直接键入SPACE(而不是TAB)来获取自动完成加上我的空格字符.这适用于其他特殊字符,如句号,括号等.

autocomplete editor android-studio

0
推荐指数
1
解决办法
674
查看次数