小编exe*_*nza的帖子

渐变色文本

我实际尝试实现的目标: 我想用渐变垂直颜色绘制文本。我找到了这个解决方案,但它不太适合我,因为在我的例子中它的渐变字体周围有黑色方块 - 不知道如何摆脱它,所以我开始了简单的(不相关的部分)问题更好地理解 opengl 和 libgdx 中混合和帧缓冲的物理原理

我试图理解的,与我的目标无关: 我有一个纹理,上面有一个白色方块,我把它画在红色背景上。我试图在白色方块的顶部绘制一个绿色方块,绿色方块部分覆盖白色方块,部分覆盖红色背景(见下图)。

我的意图是:绿色方块后面的白色区域应该涂成绿色,但所有红色背景不应该受到影响并保持不变(红色原样)。

我怎样才能做到这一点?

package com.mygdx.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

public class Game extends ApplicationAdapter {
    SpriteBatch batch;
    Texture img;
    private int height;
    private int width;
    private ShapeRenderer shapeRenderer;

    @Override
    public void create() {
        batch = new SpriteBatch();
        img = new Texture("white.png");
        width = Gdx.graphics.getWidth();
        height = Gdx.graphics.getHeight();
        shapeRenderer = new ShapeRenderer();
        shapeRenderer.setAutoShapeType(true);
    }

    @Override
    public void render() {
        Gdx.gl.glClearColor(1, …
Run Code Online (Sandbox Code Playgroud)

opengl blending libgdx

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

关于解析 pdf 时没有 Unicode 映射错误

我有一堆 pdf 文件(来自不同来源),我想从中提取文本(不幸的是无法附加文件)。

当前解析结果

  1. Tika 默默地返回文本,其中缺少许多所需的数据。
  2. 直接使用 PDFBox 会给出一堆警告(见下文),并且还会删除它无法识别的数据
  3. Adobe Acrobat Reader(另存为文本操作)保留原始文档结构,但在有问题的字体处放置“”

到目前为止,我从 PDFBox 中看到的所有警告组合在一起:

Aug 06, 2020 3:10:49 PM org.apache.pdfbox.pdmodel.font.PDType0Font toUnicode
WARNING: No Unicode mapping for CID+51 (51) in font AUDQZE+OpenSans-Identity-H

Aug 06, 2020 3:10:49 PM org.apache.pdfbox.pdmodel.font.PDType0Font toUnicode
WARNING: No Unicode mapping for CID+5 (5) in font HCUDUN+DroidSerif-Identity-H

Aug 06, 2020 3:10:49 PM org.apache.pdfbox.pdmodel.font.PDType0Font toUnicode
WARNING: No Unicode mapping for CID+5 (5) in font AUDQZE+OpenSans-Identity-H

Aug 06, 2020 3:10:49 PM org.apache.pdfbox.pdmodel.font.PDType0Font toUnicode
WARNING: No Unicode mapping for CID+55 …
Run Code Online (Sandbox Code Playgroud)

unicode parsing pdf-parsing pdfbox apache-tika

6
推荐指数
0
解决办法
4960
查看次数

是否应该始终在 ViewModel 中使用 livedata?

视图模型中字段的推荐模式似乎是:

val selected = MutableLiveData<Item>()

fun select(item: Item) {
    selected.value = item
}
Run Code Online (Sandbox Code Playgroud)

(顺便说一句,该selected字段不是私有的,这是正确的吗?)

但是如果我不需要订阅 ViewModel 字段中的更改怎么办?我只需要被动地将这个值拉到另一个片段中。

我的项目详细信息:

  • 一个 Activity 和一堆简单片段用导航组件相互替换
  • ViewModel 执行业务逻辑并将一些值从一个片段传递到另一个片段
  • 活动和片段有一个 ViewModel,没有看到拥有多个 ViewModel 的意义,因为它是相同的业务流程
  • 我更喜欢将一个值存储在一个片段中,并在下一个片段中访问它来替换当前的片段,而不是将其传递到一个包中并在每个片段中手动一次又一次地检索

视图模型:

private var amount = 0
fun setAmount(value: Int) { amount = value}
fun getAmount() = amount
Run Code Online (Sandbox Code Playgroud)

片段1:

bnd.button10.setOnClickListener { viewModel.setAmount(10) }
Run Code Online (Sandbox Code Playgroud)

片段2:

if(viewModel.getAmount() < 20) { bnd.textView.text = "less than 20" }
Run Code Online (Sandbox Code Playgroud)

这是一种有效的方法吗?或者有更好的吗?或者我应该只使用 LiveData 或 Flow?

也许我应该使用SavedStateHandle?它可以注入到 ViewModel 中吗?

android viewmodel android-livedata

2
推荐指数
1
解决办法
3096
查看次数