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

我想放一个位图在Imageview保持长宽比

宣瀚
2023-03-14

这是我的xml代码:

        <ImageView
        android:id="@+id/ColImgPath"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:adjustViewBounds="true"
        android:background="@drawable/border"/>

这是我的java代码,它在listview中:

ImageView imageView = (ImageView) convertView.findViewById(R.id.ColImgPath);
        imageView.setPadding(5, 5, 5, 5);
            imageView.setVisibility(View.VISIBLE);
    try {
            Bitmap bmp = ((Bitmap) MyArrList.get(position).get("ImageThumBitmap"));
            int bmpx = bmp.getWidth();
            int bmpy = bmp.getHeight();

            Log.i("INFO","X: "+bmpx+" Y: "+bmpy);

            Bitmap photobitmap1 = Bitmap.createScaledBitmap(bmp, bmpx/2,bmpy/2, true);
            imageView.setImageBitmap(photobitmap1);
            //imageView.setImageBitmap((Bitmap) MyArrList.get(position).get("ImageThumBitmap"));

        } catch (Exception e) {
            // When Error
            imageView.setImageResource(android.R.drawable.ic_menu_report_image);
        }

问题是,我想将调整大小的位图放入位图,但imageview始终显示为正方形。位图的大小为:X:4160 Y:3120,屏幕大小为:宽度=1080高度=1776

我想将宽度填充父级并调整高度以保持长宽比。我尝试了一些xml替代方案,如“ScaleType”。

有人知道正确放置位图的方法吗?

共有3个答案

董子航
2023-03-14

Android ImageView中有不同的缩放类型

CENTER\u INSIDE-用于设置位图,保持位图原始纵横比。

CENTER_CROP-用于在Imageview中设置位图以覆盖Imageview而不破坏纵横比,而不是从负x, y值设置位图以覆盖Imageview区域。

FIT_XY-用于将整个位图设置为可用的ImageView高度和宽度意味着位图采用Imageviews纵横比。

                              OR

如果要调整位图的大小,则取要设置的高度或宽度,如果取宽度,则取高度/宽度的比率,如果有下一个高度,则取宽度/高度,并将重复的宽度和高度乘以该比率。它将改变位图的高度和宽度,但保留原始位图的纵横比。

郜俊晤
2023-03-14

它是一个ImageView,因此您需要使用android: src="@draable/边框"而不是android: background。还可以尝试android: caleType="fitXY"cropCenter

臧兴学
2023-03-14

fitXy不适用于刻度类型吗?

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

 类似资料:
  • 我有一个。的数据是从服务器请求的。 以下是中的项布局: 我从服务器请求数据,获取图像url并将图像加载到 适配器中有方法的代码 图像大小为。我在我的Nexus4上运行我的应用程序。图像填充宽度,但高度不缩放。不显示整个图像。 我如何解决这个问题?

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

  • 问题内容: 这是问题所在。我有一张图片: 注意未指定高度或宽度。 在某些页面上,我只想显示一个缩略图。我无法更改html,因此我使用以下CSS: 哪一个(在大多数浏览器中)制作的页面具有统一的宽缩略图,所有缩略图均保留长宽比。 但是在IE6中,图像仅按CSS中指定的尺寸缩放。它保留了“自然”的高度。 对于所有建议,我将非常感谢,但我想指出一点(由于所选平台的客户端的局限性),我正在寻找不涉及修改h

  • 问题内容: 我尝试查看其他答案,但没有帮助。我的背景是动态的,因此图像的大小会改变,因此我需要保持宽高比,以便可以看到整个图像。这是我的CSS: } html 此刻取决于图像,有时很多图像被切除。我希望缩小图像以便可以完全看到。任何的想法? 问题答案: 使用覆盖整个元件,同时保持纵横比 如果要显示整个图像,同时保持宽高比,请改用:

  • 问题内容: 基本上,我想上传图像(已排序)并将其按比例缩小到某些限制,例如最大宽度和高度,但要保持原始图像的纵横比。 我没有在服务器上安装Imagick-否则这很容易。 一如既往地提供任何帮助。谢谢。 编辑:我不需要整个代码或任何东西,只是朝着正确的方向推进将是很棒的。 问题答案: 我为完成的另一个项目编写了这样的代码。我已在下面复制了它,可能需要修补一下!(它确实需要GD库) 这些是它需要的参数

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