当前位置: 首页 > 面试题库 >

在Android中使用createScaledBitmap创建缩放的位图

薛弘阔
2023-03-14
问题内容

我想创建一个缩放的位图,但似乎得到了不成比例的图像。我想要矩形时,看起来像正方形。

我的代码:

Bitmap resizedBitmap = Bitmap.createScaledBitmap(myBitmap, 960, 960, false);

我希望图像的最大值为960。我该怎么做?将width设置为null不会编译。这可能很简单,但我无法将其包裹住。谢谢


问题答案:

如果你已经在内存中的原始位图,你并不需要做的全过程inJustDecodeBoundsinSampleSize等你只需要搞清楚什么比使用和规模相应。

final int maxSize = 960;
int outWidth;
int outHeight;
int inWidth = myBitmap.getWidth();
int inHeight = myBitmap.getHeight();
if(inWidth > inHeight){
    outWidth = maxSize;
    outHeight = (inHeight * maxSize) / inWidth; 
} else {
    outHeight = maxSize;
    outWidth = (inWidth * maxSize) / inHeight; 
}

Bitmap resizedBitmap = Bitmap.createScaledBitmap(myBitmap, outWidth, outHeight, false);

如果此图像的唯一用途是缩放版本,则最好使用Tobiel的答案,以最大程度地减少内存使用量。



 类似资料:
  • 目前我正在使用这个命令来生成SVG:

  • 问题内容: 如果我有画布,则可以在其上绘制如下的位图: 然后缩放位图: 我想获得比例尺后位图的位置。如果小数位数前的位置是(0,0),小数位数后的位置有一个偏移量,那么我需要该偏移量。如何获取? 谢谢你,很抱歉这个简单的问题,新手在这里… 问题答案: 好吧,让我们尝试为此制定最佳的公式 对于objectNewY也是一样。位图的新宽度和高度当然将是旧大小和比例的倍数。

  • 官方缩放视图教程使用缩放到。它会随着视图的扩展而产生向下移动的错觉。稍后,只需向后重播即可产生缩小的错觉。 以下是我目前为止尝试过的。我的XML布局是 这是执行缩小操作的方法。我基本上试着颠倒了教程中的过程: 我在中调用此方法,如下所示: 好了,就是这样,伙计们。它不起作用。我不知道为什么。演示示例运行完美,那么为什么这个不起作用呢?看看,告诉我我是否疯了。 有人能识别错误吗?或者给我指出正确的方

  • 我在Android日食中使用 itext 创建 pdf 时遇到问题 如果给定了引导入口,我无法创建pdf,在我的情况下是Android 5.0.1。如果我删除了bootstrap条目,我可以创建pdf,但不能启动活动,因为android 5.0.1包含android jar。你能告诉我如何解决这个问题吗?同样,如果我把它变成一个非活动类,我希望能够在另一个活动类中创建一个非活动类的对象,这样我就可

  • 我有一个呈现图形的JavaFX Webview(使用D3)。我想在JavaFX应用程序中实现此图上的“鼠标滚动缩放”(当鼠标悬停在webview顶部时)。我能够使用以下d3 js代码在Web浏览器上成功完成它 但是,如果我在JavaFX应用程序的WebView中执行类似操作,图形最初会在WebView中呈现,但会滚动,只会消失,并且只有当我将鼠标滚动恢复到初始位置(应用程序启动时)时才会重新出现

  • 我正在尝试调整嵌入到div容器中的svg的大小和缩放。我的目标是通过道具改变te svg作为一个React组件。您可以在这里查看代码沙箱。 我使用viewbox和矩阵变换使svg圆圈保持其在窗口调整大小上的位置。我可以在鼠标滚轮上相应地缩放圆圈。对于缩放,我在window resize事件上设置组件状态中父容器的宽度和高度。 但是当我在改变窗口大小之前缩放时,圆圈就不在它的位置了。 你知道如何使我