首页
学习
活动
专区
圈层
工具
发布

Android中使控件保持固定宽高比的几种方式

我们在android开发过程中可能会遇到一种情况,一个组件需要保持固定的宽高比,但是组件本身大小却不定。比如我们需要让一个组件宽度与屏幕宽度一致,这样就无法确定宽度。那么如何让控件保持固定宽高比?...adjustViewBounds 为ImageView设置adjustViewBounds,如下: android:adjustViewBounds="true" 这样ImageView就会以图片的宽高比显示...百分比布局 Android提供了Android-percent-support这个库,支持百分比布局,包括PercentRelativeLayout和PercentFrameLayout。...ConstraintLayout 这种方式与百分比布局类似,使用的是ConstraintLayout的DimensionRatio属性,代码如下: ConstraintLayout...在上面示例中我们将ImageView的宽高都设置为0。就此我测试了其他的可能性,产生的几个情况如下: 1、如果组件宽高都设置0dp,组件宽高按比例,且只受父view的约束。

2.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ImageView的属性和方法大全

    XML属性 相关方法 说明 android:adjustViewBounds setAdjustViewBounds(boolean) 设置 ImageView是否调整自己的边界来保持所显示的图片长宽比...fitStart (ImageView.ScaleType.FIT_START ):保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在...fitCenter (ImageView.ScaleType.FIT_CENTER ):保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等)...fitEnd (ImageView.ScaleType.FIT_END ):保持纵横比缩放图片,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相应的边长相等),缩放完成后将该图片放在...centerlnside (ImageView.ScaleType.CENTER_INSIDE ):保持纵横比缩放图片,以使得ImageView能完全显示该图片。

    2.6K90

    scaleType详解

    上图 其中蘑菇代表你的图片 红色背景代表你的布局 恕我直言 用的最多的还是 fit_xy 和center_crop ImageView的scaleType的属性有好几种,分别是matrix...(缩小)到ImageView的高度,显示在ImageView的下部分位置 android:scaleType=”fitStart” 把原图按比例扩大(缩小)到ImageView的高度,显示在ImageView...的上部分位置 android:scaleType=”fitXY” 把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageView....Tip:很多人都觉得fitCenter和centerInside没有区别,根据上面的效果图来分析,其实是有区别的。...基本用不到的一个属性: ImageView的android:adjustViewBounds属性为是否保持原图的长宽比,单独设置不起作用,需要配合maxWidth或maxHeight一起使用。

    1.8K20

    常用控件之ImageView的使用(一)

    这就不得不要说一下 android:src属性和 android:background的区别了: 在API文档中我们发现 ImageView有两个可以设置图片的属性(任意继承自 View的控件都包含 background...adjustViewBounds:设置ImageView是否调整自己的边界来保持所显示图片的长宽比,需要结合 android:maxWidth、 android:maxHeight一起使用否则单独使用没有效果...fitXY:横向、纵向独立缩放,以适应该 ImageView; fitStart:保持纵横比缩放图片,并且将图片放在 ImageView的左上角; fitCenter:保持纵横比缩放图片,缩放完成后将图片放在...ImageView的中央; fitEnd:保持纵横比缩放图片,缩放完成后将图片放在 ImageView的右下角; center:把图片放在 ImageView的中央,但是不进行任何缩放; centerCrop...:保持纵横比缩放图片,以使图片能完全覆盖ImageView; centerInside:保持纵横比缩放图片,以使得 ImageView能完全显示该图片; 上述的几个属性小编就不给大家做具体展示了,希望各位小伙伴可以自主尝试

    1.8K20

    【翻译】MotionLayout实现折叠工具栏(Part 1)

    元素 OnSwipe 把过渡动画和用户在 RecyclerView 上的拖拽操作绑定到了一起,也就是之前我们查看到的主布局中的列表。...在展开和折叠状态下, RecyclerView 列表的上边缘是处于不同位置的,因为它被约束到了 ID 为 toolbar_image 的 ImageView 图片下边缘,而这个过渡动画的实现正是由于控制着这个位置变量的值...我们使用的是一个标准的 ImageView 控件,当其位于 ConstraintSet 下的 Constraint 元素中时,其主要的属性变成可以是 ConstraintLayout.LayoutParams...中的任何一个属性,也可以是 View 中的任何一个属性,但即使像 ImageView 这类作为 View 的子类控件,我们仍然需要使用一个 CustomAttribute 符号,这里实际上和 ObjectAnimator...在折叠状态下它会垂直居中,而在展开状态下它会对齐在底部,因此 TextView 会更多的相对于 ImageView 的大小尺寸来进行相关设定。

    2.2K31

    3-VIV-Android控件之ImageView

    、adjustViewBounds、tint [4].图片设置 源码中ImageView的自定义属性: * @attr ref android.R.styleable#ImageView_adjustViewBounds...ImageView裁剪类型.gif fitCenter:按比例扩大或缩小到ImageView的ImageView的高度,居中显示 fitEnd:按比例扩大(缩小)到ImageView的高度,显示在ImageView...的下部分位置 fitStart:按比例扩大(缩小)到ImageView的高度,显示在ImageView的上部分位置 fitXY:不保持原比例,填满ImageView center:按比例扩大或缩小到ImageView...:不改变原图的大小,从ImageView的左上角开始绘制,超过ImageView的裁剪 二、剪裁:cropToPadding:需要与scrollX或scrollY同用,单独无效 测试时true和false...Drawable和Bitmap都是安卓中图片显示和处理的重要类,以后会详细论述。

    87520

    《Monkey Android》第12课ImageView

    ImageView的XML属性 android:src,设置ImageView要显示的图片; android:adjustViewBounds,是否保持宽高比,需要和maxWidth、maxHeight...设置为true; android:maxWidth和android:maxHeight要设置; android:layout_width和android:layout_height设置为wrap_content...的下部分位置 android:scaleType=”fitStart”,把图片按比例扩大(缩小)到View的宽度,显示在View的上部分位置 android:scaleType=”fitXY”,把图片按照指定的大小在...View中显示 android:scaleType=”matrix”,用matrix来绘制 下课 这一节课,我们主要学习了ImageView,不过它的功能有限,只能显示静态图片。...在实际需求中,我们可能会用到更高级的用法,如显示圆形头像,或者动态的gif,又或者图片的缩放与缩略图等等,这些就需要我们自己取实现ImageView了,后面都会讲到。

    71920

    Android 约束布局ConstraintLayout1.1.0 版详解

    Android-ConstraintLayout-Detailed/这篇文章中,我们对 ConstraintLayout 1.0.2 版进行了详细的了解。...如果对 ConstraintLayout 不了解,并且还没有观看上篇文章的,强烈建议先观看完上篇文章,因为本篇只是对上篇的补充。如果有遗落或错误,欢迎各位补充和指正。...Enforcing constraints 在 1.1 版本之前,如果将控件的尺寸设置为了 WRAP_CONTENT,那么对控件设置约束(如:minWidth 等)是不起作用的。...Margins and chains 在 1.1.0-beta4 版本中(已知),为链中的控件设置 marginRight/End 是无效的(个人感觉这应该是个 Bug)。...而在 1.1 稳定版中,无论设置右边距还是左边距都是有效果的,会累计计算。并且在计算剩余空间时,会将边距一起考虑。

    1.2K40

    android 显示图片的指定位置图像 ImageView ImageButton

    心历路程 设置scaleType的值来实现 根据查阅资料了解Image相关view的属性值了解到 对于android:scaleType属性,因为关于图像在ImageView中的显示效果,所以有如下属性值可以选择...fitXY:横向、纵向独立缩放,以适应该ImageView。 fitStart:保持纵横比缩放图片,并且将图片放在ImageView的左上角。...fitCenter:保持纵横比缩放图片,缩放完成后将图片放在ImageView的中央。 fitEnd:保持纵横比缩放图片,缩放完成后将图片放在ImageView的右下角。...center:把图片放在ImageView的中央,但是不进行任何缩放。 centerCrop:保持纵横比缩放图片,以使图片能完全覆盖ImageView。...centerInside:保持纵横比缩放图片,以使得ImageView能完全显示该图片。

    2.8K40

    android学习笔记之ImageView的scaleType属性

    我用两张图片来做demo,这两张图片的分辨率一大一小,图片分别叫做big和small。原图如下: big: small: OK,准备工作已经完成。...比如我的两张大小不同的图片,分别显示在96dp×96dp的ImageView上,会有不同的效果,代码如下: ImageView android:layout_width="96dp...:src="@drawable/small" /> 显示效果如下: 我们看到,big图片由于比较大,因此只有左上角显示出来了,其他部分则被剪裁掉了,而small图片由于分辨率比较小,因此完整的显示在ImageView...fitXY fitXY的目标是填充整个ImageView,为了完成这个目标,它需要对图片进行一些缩放操作,在缩放的过程中,它不会按照原图的比例来缩放。...fitCenter fitCenter和fitStart基本一样,唯一不同的是fitCenter将图片按比例缩放之后是居中显示,看下面一个例子: ImageView android

    2.5K20

    【Android 应用开发】AndroidUI设计 之 图片浏览器

    , 使用矩阵来进行绘图; -- fitXY : 方法中的常量值为 ImageView.ScaleType.FIT_XY, 在x y 两个方向上缩放, 使图片完全填充整个ImageView 不按照长宽比例缩放...; -- fitStart : 方法中的常量值为 ImageView.ScaleType.FIT_START, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片在左上角;...-- fitCenter : 方法中的常量值为 ImageView.ScaleType.FIT_CENTER, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片位于中央...; -- fitEnd : 方法中的常量值为 ImageView.ScaleType.FIT_END, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片位于右下角; --..., 保持长宽比缩放, 使图片完全覆盖ImageView; -- centerInside : 方法中的常量值为 ImageView.ScaleType.CENTER_INSIDE, 保持长宽比缩放, 是的

    1K20
    领券