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