小编Phi*_*l90的帖子

查看图像(更高分辨率)

我有一个视图,我想将其存储为图像(例如截取它的屏幕截图)。为此,我使用以下代码:

View view = findViewById(R.id.share_preview);
Bitmap b = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
view.draw(c);
Run Code Online (Sandbox Code Playgroud)

然后我将位图存储到图库中。

问题是,保存的图像始终与视图具有相同的大小。由于视图的大小取决于手机屏幕的大小,因此图像在每个设备上的大小都不同。

是否有可能获得更高分辨率的视图图像(并且每个设备上的分辨率相同)?

我尝试过的是在绘制到画布上之前在视图上调用scaleX()和scaleY()。视图由此缩放,但图像仍然具有旧大小(我还更改了位图的大小)。代码如下所示:

View view = findViewById(R.id.share_preview);


// here's the difference
view.setScaleX(2);
view.setScaleY(2);


Bitmap b = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
view.draw(c);
Run Code Online (Sandbox Code Playgroud)

也许需要很长时间才能更新秤。但我不知道如何检查缩放何时完成(并且缩放视图也不应该被渲染,因为它看起来完全错误)。

android image bitmap

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

标签 统计

android ×1

bitmap ×1

image ×1