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

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

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

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

    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能完全显示该图片。

    3K90

    【Android】网络布局 && 瀑布流布局

    三三要成为安卓糕手 一:网络布局 网络状布局,由照片和分割线构成 二:GridRecyclerViewActivity类 1:代码分析 Grid 美[ɡrɪd] 网格 这里的代码很熟练了 创建循环视图...> constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res...layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> constraintlayout.widget.ConstraintLayout...MyViewHolder 这两行代码:setImageResource(resId)方法接收资源 ID 作为参数,在初始化**dataList**时,刻意让列表的每个下标(position),正好等于图片资源...2:adjustViewBounds="true" 这是ImageView 中的一个属性,作用是 “调整视图边界以保持图片的原始宽高比例” 前提是 ImageView 的宽或高中至少有一个设置为 wrap_content

    36210

    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一起使用。

    2.2K20

    常用控件之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能完全显示该图片; 上述的几个属性小编就不给大家做具体展示了,希望各位小伙伴可以自主尝试

    2.2K20

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

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

    2.6K31

    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都是安卓中图片显示和处理的重要类,以后会详细论述。

    1.1K20

    《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了,后面都会讲到。

    90820

    ConstraintLayout 从入门到精通

    ConstraintLayout 是 Android 开发中功能强大且灵活的布局容器,自 Android Studio 2.2 起成为默认布局。...适配性强:轻松适配不同屏幕尺寸和方向。 支持百分比、比例、权重:无需 LinearLayout 或 PercentRelativeLayout。 二、基础概念 1....创建链 在 Android Studio 中: 选中多个控件 右键 → Chains → Create Horizontal Chain 或 Vertical Chain 链模式 通过 app:...不起作用 未正确约束 先设置约束,再加 margin 布局错乱 约束冲突 检查 XML 或使用 Layout Inspector 调试 2.使用建议 推荐: 尽量使用 0dp 替代 wrap_content...或固定值 使用 Guideline 和 Barrier 提升布局灵活性 在复杂布局中使用 Chains 结合 Layout Editor 可视化操作 使用 ConstraintLayout 2.0+

    23210

    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.5K40

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

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

    3.4K40

    【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, 保持长宽比缩放, 是的

    1.5K20
    领券