小编GV_*_*Qst的帖子

Kotlin 编译器或 Java 反编译器的奇怪行为

这个问题只是出于我的好奇心,所以我想得到一个完整的答案,而不是简单的“是”或“否”。

让我们考虑这段代码:

// Is stored in util files and used to omit annoying (this as? Smth)?.doSmth()
inline fun <reified T> Any?.cast(): T? {
    return this as? T
}

class PagingOnScrollListener(var onLoadMore: (currentPage: Int, pageSize: Int) -> Unit) : RecyclerView.OnScrollListener() {

    constructor() : this({ _, _ -> Unit })

    private var loading = false
    private var currentPage = 0
    private var latestPageSize = -1

    var visibleThreshold = VISIBLE_THRESHOLD_DEFAULT
    var pageSize = PAGE_SIZE_DEFAULT

    override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { …
Run Code Online (Sandbox Code Playgroud)

java decompiler kotlin javacompiler kotlinc

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

在 Android 中绘制大位图

不知道这个问题有没有得到解答。至少我没有找到答案。

所以这是一件事:我正在 Android 上制作一些以太空为主题的 2D 游戏,并且我正在屏幕尺寸 = 2560x1600 的模拟器上测试它。在这个游戏中有一个太空飞船正在飞行的场地。当然,它(一个字段)必须具有高分辨率的美丽背景。我的背景图像的分辨率是 4500x4500。我想让我的图像相对于相机运动向相反的方向移动,所以这就是为什么我不能使用小静态图像。此时该图像仅可见一部分:

实施例1

当我尝试绘制它时,我得到 fps = 1-2 (当然,由于图像大小,它很低):

canvas.drawBitmap(getBigImage(), -x, -y, null); 
/* getBigImage() method does nothing but returning 
a Bitmap object (no calculation or decoding is performing in there) */
Run Code Online (Sandbox Code Playgroud)

我尝试从大图像中剪切出所需的图像,但 fps 仍然很低:

Bitmap b = Bitmap.createBitmap(getBigImage(), x, y, sw, sh);
canvas.drawBitmap(b, 0, 0, null);
Run Code Online (Sandbox Code Playgroud)

我怎样才能以高帧率绘制这个大位图?

java android canvas bitmap

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

在纯Java中将Runnable发布到另一个线程

在Android中,我们有Handler#post(Runnable)方法可将一些代码从另一个代码发布到主线程

是否可以在纯Java中(例如在使用swing时)做同样的事情?

解释这个问题:假设我们有两个线程:ThreadA和ThreadB。两者都已经启动并且并排运行。并且ThreadB希望ThreadA调用某些方法(再次,ThreadA已经在运行)。

可选问题(您可能无法回答):如果有可能,有人向我解释了Handler在Android中的功能。如何将一些代码发布到MainThread?Looper的目的是什么?

java multithreading

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

关闭当前活动中的另一项活动

我想完成这个结构:

活动A正在显示.如果按下某个按钮,则打开活动B(不关闭A的当前实例).如果我按下BI的后退按钮,只想完成B,这样我就可以看到我的旧A实例.但如果在活动BI中按下另一个按钮,我想关闭A并打开C.

如何在活动B打开时关闭活动A并启动活动C?

说明: 当B处于活动状态时,A 不得被销毁,以便我可以返回它.但是如果我想打开C那么A 必须被销毁,所以如果我按下CI的按钮就不会再看到它了.

我已经实现了使用startActivity()和finish()方法打开所有活动的代码.我现在所需要的只是回答或建议我如何改造我的结构以实现我的目标.

编辑

当我想打开B时,我想我有一个想法使用startActivtyForResult(),所以当我准备打开C时,我只是让A做关闭自己.

java android android-activity

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