小编mne*_*emy的帖子

在没有上下文的情况下访问资源

我正在尝试将配置(例如URL/etc)放入资源文件夹中以供实用程序类使用.但是,我不想从各地的活动中传递Context.我希望能够通过路径名访问资源(似乎资产/是为此用途设计的),而不使用上下文来访问资源.

在这种特殊情况下,我希望单例在实例化时在配置中使用某些东西.在实例化期间,除了那一次之外,它不需要任何资源.因此,每次调用getInstance()时都必须传入一个Context,这将是一个完全的浪费.

此外,这特定于App的配置,不应存储在共享系统文件或类似的任何内容中.

java android android-context android-resources

27
推荐指数
2
解决办法
3万
查看次数

如何在不模糊的情况下缩放图像?

我正在尝试将一个微小的图像(像20x40像素)缩放到任意大的图像.我通过设置ImageView.scaleType财产做缩放,但同时它缩放图像,它从一个原始像素的颜色下一变淡,创建图像的模糊的大版本.

这是问题的一些背景.我正在尝试为Android创建一个老式的16位风格游戏.我想将sprite/etc存储为小文件,然后根据用户的屏幕大小将它们放大.这样,我不必为每个精灵创建大量不同大小的不同图像.现在我正在研究一个概念验证,所以我试图将一个小的20x40图像文件缩放到整个屏幕的大小.

*编辑:我想出了如何使用Reflog推荐的方法.但是,它仍然会有一些衰落,远远低于默认算法.

*edit2:搞定了!我不得不关闭抗锯齿

*edit3:这神秘地停止了我的工作,我找到了另一个需要禁用抖动/自动缩放的地方.添加了选项行.

@Override
protected void onDraw(Canvas canvas) {
    Paint paint = new Paint();
    paint.setDither(false);
    paint.setAntiAlias(false);

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inDither = false;
    options.inScaled = false;

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.tinyimg, options);
    canvas.drawBitmap(bitmap, null, new RectF(getLeft(), getTop(), getRight()/2, getBottom()/2), paint);
}
Run Code Online (Sandbox Code Playgroud)

android bitmap image-processing

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

编译器会优化重复的数学计算吗?

Java Compiler会优化简单的重复数学运算,例如:

if (prevX / width != curX / width) {
    // Do something with prevX / width value
} else {
    // Do something with curX / width value
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以在if语句之前将结果分配给变量,并返回变量,但这有点麻烦.如果编译器自动识别出正在进行相同的计算并将结果缓存到临时变量,我宁愿坚持上述约定.

*编辑 - 我是个白痴.我试图简单地/抽象地提出我的问题.这并不简单:if(x> y)

java

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

应用程序外的警报对话框(不在活动中)

有没有办法在应用程序之外创建某种弹出窗口,如警报对话框?这个问题的上下文是我需要在推送通知的情况下向用户显示内容.基本上,用户收到一些消息,即使App当前未打开,App也会收到消息,并且用户的任务栏中会显示通知.如果用户在任务栏中打开通知,我希望弹出窗口完全独立于应用程序.

到目前为止我找到的唯一解决方案是使用Theme.Dialog设置调用Activity创建一个Alert Dialog.此解决方案的问题是,如果应用程序已打开,则活动将添加到活动堆栈.所以我得到了不一致的行为,因为如果应用程序关闭,那么弹出窗口将按我的意愿工作,并将显示在用户当前所在的任何应用程序中.但是,如果应用程序已经打开,但当前没有关注,然后焦点将切换到我的应用程序,然后显示对话框.

理想情况下,我希望弹出窗口独立于应用程序显示,如果用户选择,则可以使用按钮将用户重定向到应用程序,或者只是关闭通知并继续他们正在做的任何事情.

有人有主意吗?

android

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