当前位置: 首页 > 知识库问答 >
问题:

在特定维度中从URI加载图像,保持长宽比

巫马翰翮
2023-03-14

我有一个试图加载到imageView中的图像的URI。

Uri imageUri = /* URI goes here */
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
Imageview iv = (Imageview) findViewById (R.id.my_img_view);
iv.setImageBitmap(bitmap); 

图像以全分辨率加载(高达2100万像素,导致内存不足异常)。我的应用程序不需要使用全分辨率图像,因此我希望以这种方式缩小图像,以便满足以下条件:

>

  • 如果图像高度大于宽度(即纵向),则将宽度缩放至1024像素,并将高度缩放至适当值以保持纵横比。

    如果图像宽度大于高度(即横向),则将高度缩放到1024像素,并将宽度缩放到适当的值以保持纵横比。

    如果图像是正方形,将其缩放为1024x1024

    是否有任何方法,我可以缩放位图,然后将其应用到ImageView(甚至更好的Media.get位图)?

  • 共有1个答案

    袁恩
    2023-03-14

    试试这个库:https://github.com/AndroidDeveloperLB/AndroidJniBitmapOperations

    这个库涵盖了几乎所有的位图操作,如缩放、旋转、裁剪等

     类似资料:
    • 我有一个使用CSS flexbox缩放到可用高度的DIV。在这个DIV中,我想在两个维度上与DIV一起缩放图像。这意味着它应该被缩放以保持其长宽比,并且小于相应DIV维度的维度应该居中。 我可以使图像跟随DIV的宽度,但不能跟随高度。因此,肖像图像脱离DIV界限。 这里有一个jsFiddle来演示这个问题。

    • 有没有一种方法,只使用CSS,将图像的高度设置为其容器的高度,同时保持纵横比,允许宽度溢出和隐藏?这听起来有很多要求,但肯定有办法。我的意思是,我希望显示图像的完整高度,但如果宽度比容器允许的宽度宽(使用引导网格系统),那么只需溢出:隐藏。我将高度设置为100%,看起来很好,但图片从侧面挤压,以适合容器内,而不是溢出和被裁剪。通过将宽度设置为100%,它将填充容器。我认为这是使用容器作为标准的10

    • 我正在尝试加载存储在应用程序文件夹上的图像当我打开活动时,我从logcat收到了这个错误: 1-20 01:30:40.125 14331-14331/mx.eusaga。af W/ImageView:无法打开内容:content://mx.eusaga.af.fileprovider/imagenes/1-db384fa8-f28b-4595-abbf-d45d38fd4036.jpgjava.

    • 问题内容: 使用CSS flex box模型,如何强制图像保持其纵横比? JS小提琴:http://jsfiddle.net/xLc2Le0k/2/ 请注意,图像会拉伸或收缩以填充容器的宽度。很好,但是我们也可以拉伸或缩小 高度 以保持图像比例吗? 的HTML 的CSS 问题答案: 对于img标签,如果您定义一侧,那么将调整另一侧的大小以保持纵横比,并且默认情况下,图像会扩展到其原始大小。 使用此

    • 问题内容: 我需要将元素的 宽度 保持为 高度 的百分比。因此,随着高度的变化,宽度也会更新。 通过为padding-top使用%值可以实现相反的效果,但以padding-left为百分比将是对象宽度的百分比,而不是其高度。 因此,使用这样的标记: 我想使用这样的东西: 为了确保根据盒子 的高度保持 盒子的 长宽比 。高度是可变的,因为它的百分比裕度-当窗口的高度改变时,盒子的高度也会改变。 我知

    • 问题内容: 我正在使用Bootstrap创建轮播,我的图像很大,因此当屏幕小于图像时,不会保持该比例。 我该如何改变? 这是我的代码: 我需要图片适合100%的宽度,但要保持其500px的高度(我认为是500px),这意味着在较小的屏幕上我们看不到图片的最左侧和最右侧。 我尝试将图像包含在div中并添加 但这不起作用 谢谢! 问题答案: 问题在于引导CSS: 设置图像不会超过视口。您需要在CSS上