相关疑难解决方法(0)

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

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

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

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

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

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

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

java android

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

在ICS或JB上的任务管理器中显示自定义应用程序映像

据我所知,在Android 4.0(或更高版本)上,默认任务管理器显示程序的最后一个截图,程序图标没有左上角.见图:

截图

我的问题是如何将任务管理器中的应用程序图像(不是图标)更改为自定义?不要问我为什么,我只是需要它.

经过一些研究后,我在SO上找到了类似的问题:在ICS的任务管理器中显示黑色预览屏幕.但它没有回答我的问题.

此外,我没有找到任何API与此任务管理器一起使用.

因此我决定在程序(活动)关闭时显示自定义图像.从活动生命周期中我发现我需要覆盖方法onPause.所以我决定编写一个小程序.这很容易理解:

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onResume()
    {
        super.onResume();
        setContentView(createImageView("/sdcard/program-image.jpg"));
    }

    @Override
    public void onPause()
    {
        setContentView(createImageView("/sdcard/task-manager-image.jpg"));
        super.onPause();
    }

    private ImageView createImageView(String pathFile)
    {
        ImageView imageView = new ImageView(getApplication());
        imageView.setImageBitmap(BitmapFactory.decodeFile(pathFile));
        imageView.invalidate();
        return imageView;
    }
}
Run Code Online (Sandbox Code Playgroud)

task-manager-image真正显示了按Home键后一段时间,但任务管理器只显示program-image.

这样做有什么好的解决方案吗?

谢谢你的帮助.

android screenshot taskmanager preview

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

Android - 在Canvas中绘制位图

我目前有一个5 x 5平方的迷宫游戏(占用屏幕宽度并均匀分割).然后,对于使用x和y坐标的每个框,我使用drawRect来绘制彩色背景.

我遇到的问题是我现在需要在同一位置绘制图像,因此替换当前的普通背景颜色填充.

这是我目前用于drawRect的代码(一些例子):

// these are all the variation of drawRect that I use
canvas.drawRect(x, y, (x + totalCellWidth), (y + totalCellHeight), green);
canvas.drawRect(x + 1, y, (x + totalCellWidth), (y + totalCellHeight), green);
canvas.drawRect(x, y + 1, (x + totalCellWidth), (y + totalCellHeight), green);
Run Code Online (Sandbox Code Playgroud)

然后我还需要为画布中的所有其他方块实现背景图像.此背景将在其顶部绘制简单的1px黑色线条,当前代码以灰色背景绘制.

background = new Paint();
background.setColor(bgColor);
canvas.drawRect(0, 0, width, height, background);
Run Code Online (Sandbox Code Playgroud)

如果可能的话,请你指点一下.如果是这样,那么我可以做的最好的方法是什么,同时尽量减少内存使用量并使1个图像扩展和缩小以填充相关的方形空间(这会因所有不同的屏幕尺寸而变化,因为它会分裂整体屏幕宽度均匀).

java android bitmap draw android-canvas

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