如何在Android应用中使用高分辨率(4k)图像

How to use high resolution(4k) image in android app(如何在Android应用中使用高分辨率(4k)图像)
本文介绍了如何在Android应用中使用高分辨率(4k)图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在从API获取高分辨率图像,并将它们显示在我的应用程序上。我不熟悉处理高分辨率图像或图像,所以当我在应用程序上看到图像变得模糊时,我感到很惊讶。

1)如何才能以高分辨率显示

2)可以做些什么来减少分辨率损失?

我正在使用Coil库将图像加载到可在Android上合成的图像中。

在Google像素3a上测试。

以下是显示图像的应用程序和显示另一个图像的浏览器之间的区别示例:

我的可合成内容如下所示:

Image(
      painter = rememberImagePainter(
                    imageUrl,
                    builder = { allowHardware(false) }
                ),
      contentDescription = "",
      modifier = Modifier
                    .fillMaxWidth()
                    .aspectRatio(1f),
      contentScale = ContentScale.Fit,
     )

更新:

  1. 我尝试使用ImageView而不是Composable,但我仍然 获得相同的结果。

推荐答案

builder中,强制将图像大小(以像素为单位)设置为您的首选大小。

Image(
    painter = rememberImagePainter(
        imageUrl,
        builder = {
            allowHardware(false)
            size(image.width, image.height)
        }
    ),
    contentDescription = "",
    modifier = Modifier
        .fillMaxWidth()
        .aspectRatio(1f),
    contentScale = ContentScale.Fit,
)

但在指定非常高的分辨率时要小心,它会导致崩溃RuntimeException: Canvas: trying to draw too large bitmap

这篇关于如何在Android应用中使用高分辨率(4k)图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How to target newer versions in .gitlab-ci.yml using auto devops (java 11 instead of 8 and Android 31 instead of 29)(如何在.gitlab-ci.yml中使用自动开发工具(Java 11而不是8,Android 31而不是29)瞄准较新的版本)
Android + coreLibraryDesugaring: which Java 11 APIs can I expect to work?(Android+core LibraryDesugering:我可以期待哪些Java 11API能够工作?)
How to render something in an if statement React Native(如何在If语句中呈现某些内容Reaction Native)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)
Using Firebase Firestore in offline only mode(在仅脱机模式下使用Firebase FiRestore)
Crash on Google Play Pre-Launch Report: java.lang.NoSuchMethodError(Google Play发布前崩溃报告:java.lang.NoSuchMethodError)