Android 在画布上绘制平滑缩小的位图

Android 在画布上绘制平滑缩小的位图,android,android-canvas,wear-os,android-bitmap,ion,Android,Android Canvas,Wear Os,Android Bitmap,Ion,我想在我的手表上显示我的手机从api检索到的图像。大小是固定的。为此,我使用了ion并缩小了图像的比例,使其适合于手表表面。然后,我使用DataApi将其发送到手表 问题是图像一点也不平滑,边缘看起来像像素化了: 我尝试过这些解决方案,但都没有效果: 在移动端:使用离子调整位图大小: Ion.with(context).load(url).withBitmap().resize(80,80).centerInside().asBitmap().setCallback(bitmapFuture

我想在我的手表上显示我的手机从api检索到的图像。大小是固定的。为此,我使用了ion并缩小了图像的比例,使其适合于手表表面。然后,我使用
DataApi
将其发送到手表

问题是图像一点也不平滑,边缘看起来像像素化了:

我尝试过这些解决方案,但都没有效果:

  • 在移动端:使用离子调整位图大小:

    Ion.with(context).load(url).withBitmap().resize(80,80).centerInside().asBitmap().setCallback(bitmapFutureCallback)

或在bitmapFutureCallback(上图)中使用位图

  • 在磨损侧:在位图绘制中将
    抗锯齿
    过滤器位图
    设置为true
我可以使用什么来平滑位图


前后图像:

您是否必须创建缩放的
位图
?为什么不缩放
画布
?我没有想到,谢谢:)但是仅仅是获取图像就扼杀了应用程序,它太大了。在将位图发送给可穿戴设备之前,手持设备上的位图是什么样子?如果质量已经很低,那么你在磨损方面所做的一切都不会有帮助。最好的建议可能是通过Ion检索全尺寸,然后自己在手持设备上缩放(使用
FilterBitmap
),然后再将其发送给佩戴者。原始质量很好。使用
ion
将其安装到手机的ImageView中看起来不错,但可能是因为它比手表上的要大。我已经尝试过这个解决方案:我在手机端尝试了
位图.createScaledBitmap
canvas.drawBitmap
,都激活了过滤器。在将其发送到手表之前,调整大小的
位图
是什么样子?我的意思是,这可能与穿着无关;在发送之前,您需要对大小调整进行排序。您是否可以在问题中添加一个示例(调整大小之前和之后)?您是否必须创建缩放的
位图
?为什么不缩放
画布
?我没有想到,谢谢:)但是仅仅是获取图像就扼杀了应用程序,它太大了。在将位图发送给可穿戴设备之前,手持设备上的位图是什么样子?如果质量已经很低,那么你在磨损方面所做的一切都不会有帮助。最好的建议可能是通过Ion检索全尺寸,然后自己在手持设备上缩放(使用
FilterBitmap
),然后再将其发送给佩戴者。原始质量很好。使用
ion
将其安装到手机的ImageView中看起来不错,但可能是因为它比手表上的要大。我已经尝试过这个解决方案:我在手机端尝试了
位图.createScaledBitmap
canvas.drawBitmap
,都激活了过滤器。在将其发送到手表之前,调整大小的
位图
是什么样子?我的意思是,这可能与穿着无关;在发送之前,您需要对大小调整进行排序。您是否可以在您的问题中添加一个示例(调整大小之前和之后)?
float side = result.getHeight() > result.getWidth() ? result.getHeight() : result.getWidth();
float scale = 80f / side;
receivingLogo = Bitmap.createScaledBitmap(result,
                                        (int) (result.getWidth() * scale),
                                        (int) (result.getHeight() * scale),
                                        true);