首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

我们在android开发过程中可能会遇到一种情况,一个组件需要保持固定的宽高比,但是组件本身大小却不定。比如我们需要让一个组件宽度与屏幕宽度一致,这样就无法确定宽度。那么如何让控件保持固定宽高比?...adjustViewBounds 为ImageView设置adjustViewBounds,如下: android:adjustViewBounds="true" 这样ImageView就会以图片的宽高比显示...但是这个方法的缺点是只能用于ImageView。...ConstraintLayout 这种方式与百分比布局类似,使用的是ConstraintLayout的DimensionRatio属性,代码如下: ConstraintLayout...> 这种方法的优点是不用自定义view,相对于百分比布局不需要创建一个设置ratio的xml文件;缺点是需要使用ConstraintLayout。

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

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

    在展开和折叠状态下, RecyclerView 列表的上边缘是处于不同位置的,因为它被约束到了 ID 为 toolbar_image 的 ImageView 图片下边缘,而这个过渡动画的实现正是由于控制着这个位置变量的值...别小看这里短短的 10 行 XML 代码,它背后可为我们做了大量的工作哦。这其中内部原理非常复杂,它由 RecyclerView 的滚动行为所驱动。...我们使用的是一个标准的 ImageView 控件,当其位于 ConstraintSet 下的 Constraint 元素中时,其主要的属性变成可以是 ConstraintLayout.LayoutParams...在折叠状态下它会垂直居中,而在展开状态下它会对齐在底部,因此 TextView 会更多的相对于 ImageView 的大小尺寸来进行相关设定。...这事实上效果已经非常接近,但是仔细看你会发现这里与刚开始我们使用的 CoordinatorLayout 方式有一个细微的区别:在 CoordinatorLayout 布局下图片的褪色渐变动画和 MotionLayout

    2K31

    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的高度,居中显示 centerCrop:(小图会放大形成模糊版的center,大图同center) centerInside:(小图会保持原大小...R.mipmap.bz)); --- 后记、 1.声明: 1本文由张风捷特烈原创,转载请注明 2欢迎广大编程爱好者共同交流 3个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正 4你的喜欢与支持将是我最大的动力

    1K00

    android开发常用技巧

    综述 这是自己总结的开发技巧,不断更新中··········· 编写技巧 1. text文本单行显示并设置省略号 将TextView控件的singleLine属性设为True,并将ellipsize设为...end android:singleLine="true" android:ellipsize="end" 效果如下: 只在一行显示,如果文本多余,末尾会出现三个点,三个点的样式也是可以改变的...把ellipsize值有middle,start,end,marque,none 2.imageView图片框四周白边去除 android:adjustViewBounds="true" android...来改变颜色 4、返回父activity页面从左到右滑 在父activity设置属性: android:launchMode="singleTop" 5、修复按钮设置背景没反应的问题 的布局最好是LinearLayout,一定不要用ConstraintLayout 例子(获取listView中所有item的高度): //动态设置listView的高度 int h

    15810

    3-VIV-Android控件之ImageView

    零、前言 [1].ImageView地位:直接继承自View,安卓源码1600+,算是个小类,但图片显示基本上都用它 [2].scaleType有点小烦,不过看图还是挺清晰的 [3].cropToPadding...、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的高度,居中显示 centerCrop:(小图会放大形成模糊版的center,大图同center) centerInside:(小图会保持原大小,大图同fitCenter) matrix

    78120

    《Monkey Android》第12课ImageView

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

    65420

    Android ConstraintLayout详解「建议收藏」

    概述 在本篇文章中,你会学习到有关ConstraintLayout — 一种构建于弹性Constraints(约束)系统的新型Android Layout。...在Project面板内打开 res/layout/activity_main_done.xml 选择Design选项显示最终的layout编辑界面 在编辑器左上角选择Virtual Device to...我们可以在TextView的顶部控键与ImageView的底部控键创建一个约束,如图: 移除约束:移除某个约束只需点击指定约束的控键;移除全部约束需要点击如下按钮: 下一步,创建ImageView...它在UI编辑器的右侧。附带有已选择widget的各种相关属性,而且还显示了该视图是如何对齐与约束的。...控制widget内部尺寸 – Inspector内部的线让你可以控制widget内部尺寸。

    2.4K30

    android学习笔记之ImageView的scaleType属性

    比如我的两张大小不同的图片,分别显示在96dp×96dp的ImageView上,会有不同的效果,代码如下: ImageView android:layout_width="96dp...: 我们看到,big图片由于比较大,因此只有左上角显示出来了,其他部分则被剪裁掉了,而small图片由于分辨率比较小,因此完整的显示在ImageView的左上角。...fitXY fitXY的目标是填充整个ImageView,为了完成这个目标,它需要对图片进行一些缩放操作,在缩放的过程中,它不会按照原图的比例来缩放。...fitStart 将图片按比例缩放至View的宽度或者高度(取宽和高的最小值),然后居上或者居左显示(与前面缩放至宽还是高有关),我们来看下面一个例子: ImageView...: big图片是缩放至ImageView的宽度,然后居上显示,small图片是缩放至ImageView的高度,然后居左显示。

    2K20

    Android开发中的全屏背景显示方案

    一方面,这可以给用户留下更深刻的使用体验,从而产生一定品牌效应;另一方面,也给应用的启动初始化留下了充裕的时间,避免因为启动时间过长而给用户留下不良的印象。因此,全屏显示在手机应用中得到了广泛的应用。...那么这篇博客中就记录下全屏显示的一些实现方案。 实现 方案一:给布局管理器设置背景图片。这种方案是通过设置android:background和NoActionBar主题来实现的。 1 的子视图ImageView。...具体说来就是将ImageView作为FrameLayout的第一个子视图,基于FrameLayout的属性,后面添加的子视图都将叠加到第一个子视图之上,间接地实现了全图片视图背景。 1 的图片时、或者图片较多时,容易导致内存溢出。 方案三、使用Java代码动态加载图片设置全屏背景。这种方案的原理是,根据显示屏幕的大小对图片进行缩放,从而对屏幕尺寸进行适配。

    2.7K50

    代码实验室--带你一步步理解使用 ConstraintLayout

    ImageView 被拖入布局后, UI 生成器就会立即询问其所使用的资源(显示在 ImageView 中的图)....继续, 从布局中删除 TextView 创建 ImageView 底锚点和容器底部的约束 UI 生成器应该看起来是这样 Inspector 显示出控件控件在一个方形区域的中间....控制控件的内部尺寸: 控件内部的线允许你控制它的尺寸, 你可以点击特定的线看看它的具体运作方式. 这是 Inspector 中一个控件的放大视图....Figure A: 显示 ImageView 在设定 width 为 'AnySize' 前 Figure B:显示 ImageView 在设定 width 为 'AnySize' 后 要查看并编辑一个指定控件所有其他参数...ImageView 之外还有为ImageView 显示相机, 设置和字幕的TextViews. 你将要学些什么 使用菜单的操作横向和纵向展开 view. 使用推理按钮通过推理协助创建约束.

    2.7K60

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

    (boolean), 是否裁剪, 用来保留ImageView的padding, 该属性与android:scrollY 属性一起使用的时候才有用, 单独使用没有效果; 即 在滚动的时候, 滚动到边界,..., 直到该图片完全显示在ImageView中, 缩放完成之后该图片在左上角; -- fitCenter : 方法中的常量值为 ImageView.ScaleType.FIT_CENTER, 保持长宽比缩放..., 直到该图片完全显示在ImageView中, 缩放完成之后该图片位于中央; -- fitEnd : 方法中的常量值为 ImageView.ScaleType.FIT_END, 保持长宽比缩放, 直到该图片完全显示在..., ImageView中的图片宽度与原图一样, 该属性不进行任何缩放,直接将图片放在左上角; android:scaleType = "fixXY" : 长宽不按比例拉伸, 图片明显变形 :  android...与 ImageView 的中心重合; android:scaleType = "centerCrop" ,长宽等比例缩放, 使图片完全覆盖ImageView, 图片中心与ImageView中心重合

    93820

    ConstraintLayout2.0一篇写不完之Carousel

    Helper,它可以轻松构建自定义的Carousel视图,显示用户可以浏览的元素列表。...与实现此类视图的其他解决方案相比,Carousel可以利用MotionLayout迅速为轮播创建复杂的动画效果。 Carousel支持带有开始和结束的列表以及循环环绕列表。...在next状态中,需要相反的情况发生,与B,C,D,E移动到其中A,B,C,D分别为和的观点从从右向左移动。 至关重要的是,start状态必须恰好位于原始视图的起始状态。...下图显示了这种机制(请注意“ item#”值): 转场Transitions 在ConstraintSet中定义的这三个状态,在start和next,以及start和previous之间创建两个Transitions...ImageView android:id="@+id/imageView4" .. /> constraintlayout.helper.widget.Carousel

    1.5K20

    Constraintlayout约束布局三问

    主要有三个优点 第一就是强大的属性,通过约束各个控件的关系。有人可能说了Relativelayout不也是设置各个控件的位置吗?..." 我的底部与父view底部对齐 居中效果 设置位置,左边与父布局左边对齐,右边与父布局右边对齐,就会形成左右一个平局的拉力,也就居中显示与父布局了。...app:layout_constraintHorizontal_bias="0.3" 通过该属性可以设置在父布局中显示的位置,按比例显示,比如0.3就代表在3/10的位置。...在Constraintlayout中,可以画辅助线,可以理解为一个实际的view,一条线,但是不会显示。...比如有个需求,有两个textview,不知道哪个textview更长,我需要在更长的textview右边显示一个imageview,就可以把两个textview设置为一个整体。

    1.6K10

    VV-安卓布局总汇篇

    脱出来的控件毕竟是IDE的智商,一个控件属性非常多,可读性不怎样,所以在此总结一下安卓的布局 插播一段感悟:我经常思考工具与使用者间的关系: 用工具和会用工具之差异:良庖岁更刀,割也;族庖月更刀...本文测试图标.png ---- 一、首先说开发者选项中的两个布局分析利器: 1.布局的边框显示: 模拟器的Dev Tools里,真机开发者选项里: ?...布局边界.png 2.布局的过渡绘制分析: 也在开发者选项里,不过不是切换按钮,里面有选项,一般选第二个,如果绿色色弱选第三个(还挺贴心) ?...RelativeLayout子循兄属性一览.png ---- 4.通过一个图总结一下RelativeLayout 布局文件见文后源码,有点长,不贴了 这里说一下:padding和margin,两者都可以让自己与旁边的控件产生间隙...4----看到这里,我在此感谢你的喜欢与支持

    72340
    领券