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

听说你想控制网络图片显示的尺寸

问题背景 在最近项目中,有这么一种情况要实现: 从网络加载图片,放入GridView的ImageView里面,要求ImageView宽高保持一致。 这个很简单嘛!...效果图1 图片竟然不是正方形的,和说好的不一样啊T.T 那么问题来了:如何将网络获取的图片铺满整个控件呢? 解决方法 其实想要的效果是这样的: ?...想要的效果 如何让图片高度占满控件,宽度自己裁剪呢?...本来我的想法是,将网络图片下载到本地,然后用BitmapFactory实现裁剪,但是后来阻止了这个愚蠢的想法,从时间复杂度和空间复杂度来说,处理N个这样的图片有点吃不消,后来我想起了之前用过的一个ImageView...: 图【效果1】基础上,图片在ImageView顶部或左侧 fitEnd: 图【效果1】基础上,图片在ImageView底部或右侧 centerCrop: 图片会占满ImageView,超出的部分不显示

49630

再学一遍android:fitsSystemWindows属性

Android手机顶部用于显示各种通知和状态信息的这个栏叫做状态栏。 通常情况下,我们应用程序的内容都是显示在状态栏下方的。...这是因为,xml中的配置毕竟只是一个标记,如果想要在应用程序当中产生具体的效果,那还是要看代码中是如何处理这些标记的。...,这样就避免了可交互控件被遮挡的情况出现。...但是可能有的朋友会说,由于项目限制的原因,他们无法使用CoordinatorLayout或CollapsingToolbarLayout,而是只能使用像FrameLayout或LinearLayout这样的传统布局...从Android 11开始,Google提供了一个新的API WindowInsetsController来实现同样的功能,不过本篇文章就不往这方面展开了。

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

    Android ConstraintLayout详解「建议收藏」

    例如你有两个不同尺寸的widget但是你想要他们的文字部分对齐。 《ConstraintLayout从入门到放弃》 太长;别读 5....我们可以在TextView的顶部控键与ImageView的底部控键创建一个约束,如图: 移除约束:移除某个约束只需点击指定约束的控键;移除全部约束需要点击如下按钮: 下一步,创建ImageView...跟容器顶部的约束 最后,创建ImageView左右两侧的约束 89f057b3a8ea3e0b.png 创建基线约束 – 连接widget的基线控键到另一个的基线 三)熟悉Inspector...它在UI编辑器的右侧。附带有已选择widget的各种相关属性,而且还显示了该视图是如何对齐与约束的。...如下图所示: 下一步,下方的动图展示了以下几个步骤 10210fd273ea1a86.png ImageView对齐顶部并使用Inspector(AnySize)来确保他扩展到两侧 放置两个button

    2.4K30

    仿大众点评悬浮购买框效果

    android:id="@+id/imageView1" android:layout_width="match_parent" android:layout_height="45dip"...:background="@drawable/one" android:scaleType="centerCrop" /> ImageView android:layout_width...从主界面的布局你可以看出,我们在上面放置了一个购买的布局,可能你会想,先让上面的布局隐藏起来,等下面的布局滑动上来就将其显示出来,如果这样子就跟我之前写的那篇文章差不多,效果不是很棒,所以这篇修改版的肯定不是这样子的...myScrollView;   /**      * 在MyScrollView里面的购买布局      */ private LinearLayout mBuyLayout;   /**      * 位于顶部的购买布局...好了,不过根据这种思路你也可以刚开始使用一个悬浮框来覆盖在下面的购买布局上面,然后onScroll()方法中更新悬浮框的位置,不过悬浮框的x,y不是相对于父布局的,这点要注意下,这样子也能实现效果,不过相对于此

    1.2K100

    Android开发(51) 使用 CollapsingToolbarLayout ,可折叠的顶部导航栏

    概述 在很app上都见过 可折叠的顶部导航栏效果。google support v7 提供了 CollapsingToolbarLayout 可以实现这个效果。效果图如下: ? ? ?...实现步骤 1.写一个 CollapsingToolbarLayout,它有两个 子视图,一个就是上图显示的图片(降落伞哪个)的Imageview,另一个就是 顶部导航栏toobar 2.为 CollapsingToolbarLayout...指定属性 app:layout_scrollFlags="scroll|exitUntilCollapsed" 3.为ImageView 指定属性,声明 它是可以折叠的 app:layout_collapseMode...="parallax" 4.为 toobar指定属性,声明它是固定的 app:layout_collapseMode="pin" 5.为 CollapsingToolbarLayout 所在的父布局(view...match_parent" android:layout_height="match_parent" android:scaleType="centerCrop

    1.8K00

    android 圆角图片的实现和封装

    ,负责具体的圆角逻辑:只有顶部为圆角 public class DrawTopCornerImage implements DrawCornerImage { @Override public...有一点提一下如果你的 ImageView 有用 android:scaleType=”centerCrop” 属性,可能上面方法就有点不合适了,centerCrop 属性会截取图片的中心区域展示很可能圆角就不在展示范围了...但是大多场景 UI 给出的设计尺寸和图片比例应该是一致的,上面的适用范围还是很大的。 如果你想达到 centerCrop 属性的效果,也不是不可以,只是不适合封装在 Picasso 的内部逻辑中了。...的像素大小 float ivHeight = 600;//600 为布局中, 在我测试机中 ImageView 的像素大小 int width = source.getWidth...和原图片的宽高比,取其大值为了放大后能够完全覆盖 ImageView 的大小 scale = Math.max(ivWidth / width, ivHeight / height);

    1.1K40

    【Android】这效果,我没法描述

    (下面是一些废话) 要求的效果是这样的,顶部有部分悬浮,接着是一些布局,在下面是几个可切换的Tab页面,然后滚动的时候~~吧啦吧啦吧啦吧啦~~ 还是直接看图吧 ?...效果 主要就是顶部和Tab的悬浮,还有就是被顶掉的那个效果。 听到要实现这样的效果,我抽屉那把砍产品专用菜刀已经蠢蠢欲动了。...思路 先说说实现的思路吧,上面的效果大致可以分成两个部分: 1、Tab向上滚动到顶部时悬浮 Tab滚动后悬浮在顶部嘛~~ 这效果使用CoordinatorLayout + AppBarLayout就能轻松实现...额,应该可以勉强看懂后面的内容) 2、顶部悬浮以及“被顶走”的效果 只要在CoordinatorLayout外面套一层FrameLayout,然后把这个顶部的布局改在上面。...这样也导致下面的布局被盖住了一部分,因此在LinearLayout中加了与悬浮部分相同高度的空View。 布局是完成了,那个“被顶走”的效果怎么实现呢?

    1K50

    安卓 ImageView 的 scaleType 用法实用总结

    也就是无论如何图片的大小都不会改变,控件大小决定可见范围。 如左图图片小于ImageView,则能够完全显示;右图图片大于ImageView,只能显示中间的一部分。...与fitCenter的区别就是centerInside的图片只会缩小,不会放大。 centerCrop 等比缩放到填充整个控件大小,并居中显示。...与fitCenter的区别是centerCrop的图片会填充整个区域,所以可能会被裁剪。 (注意这里图片背景为灰色,图片白色部分不属于ImageView,即ImageView已被图片占满。...MATRIX 需要与ImageView.setImageMatrix(Matrix matrix) 配合使用,指定一个变换矩阵用于指定图片如何展示。...就个人使用来说,觉得最常用的就是fitCenter(默认值),因为能够按比例且完整显示,又能在某个方向撑满控件;当希望控件被图片占满时(图片可以被适当裁剪),比较常用的就是centerCrop,因为可以保证图片按比例显示

    1.4K30

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

    把 scaleType 属性改为 centerCrop 以符合此 codelab 的目标....下一步是创建 ImageView 顶锚点于 Layout 顶部的约束. 最终我们还可以使用左和右侧边约束锚定 ImageView 在布局中间. 本节演示了如何用拖拽连接线的方式创建控件间约束的基础....继续, 从布局中删除 TextView 创建 ImageView 底锚点和容器底部的约束 UI 生成器应该看起来是这样 Inspector 显示出控件控件在一个方形区域的中间....现在布局里只有单一个 ImageView, 我们来看一下 Autoconnect 是如何创建约束的 这里是本节下一部分的步骤, 作为指导, 上面的动画显示下方使用的步骤: 把 ImageView 对齐到顶部并使用...首先, 从控件选择板拖拽一个 TextView 并放置在设置文本下面. 使用 操作水平扩展 View 以适应引导线. 使用 操作纵向扩展以填充纵向可用空间.

    2.7K60

    ImageView的ScaleType之见解

    “ 大家对ImageView再熟悉不过了,但其ScalType你了解吗?” ImageView的ScaleType属性,表示的是ImageView中资源图片的填充方式。...scaleType的属性值有好几种,分别是: matrix(默认) center centerCrop centerInside fitCenter fitEnd fitStart fitXY 这里要注意...02 centerCrop android:scaleType=”centerCrop” 以填满整个ImageView为目的,将原图的中心对准ImageView的中心,等比例放大原图,直到填满ImageView...如果原图的size本身就小于ImageView的size,则原图的size不作任何处理,居中显示在ImageView。...04 matrix android:scaleType=”matrix” 不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理。

    93820

    Android Material UI控件之ShapeableImageView

    相信你看到这篇文章也会有所疑问,第一个问题就不用说了,那么从第二问题开始回答,Android官方为开发者提供了许多丰富的UI控件,Material 组件就是包含了这些控件的一套工具,多数时候使用它可以满足我们日常开发...优势就在于它比原来的控件更加的强大,比如说我们平时要是像显示一个圆形的头像,需要怎么做呢?...fitXY只是其中的一个类型,如何查看其它类型呢? ? ① scaleType属性简介 下面针对于scaleType的八种属性来进行简单的说明。...centerCrop   控件中心和原始图片中心重叠,等比例缩放,原图比例和控件比例一致,则填满控件,如果原图比例大于控件比例,则按照控件高/图片高进行等比例缩放,这样就能保证图片宽度在进行同等比例缩放的时候...matrix 对图片的放缩策略和显示方式采用matrix方式,即矩阵变换,例如我们想让一张图宽度与屏幕保持一致,高度等比放缩,并且顶部与ImageView顶部对齐。

    2.4K41

    一个难倒 3年 android开发经验 工程师 的 bug

    长宽都不一致的,为了统一格式,一般都是把要显示出来的 imageView 设置成 scaleType = centerCrop 或者 center。   ...来事例化一个 View,而最为之关键的是,这个View 就是上面的 imageView的xml,里面明确设置了 width 和 height 是 30dp,显示方式是 centerCrop,最后通过 addView...你可能会有这样一个印象,我们绝大多项目或者是练习中的 imageVIew 使用都是直接 findViewById, 一样的 imageView 设置,却没问题, 没错,的确没问题,你可以把上面的代码替换为这个试试...} 这样显示出来的 效果 就是我们所 期望的。...为什么通过 addView() 的方法却败了呢? 问题的原因是这样的:任何使用 addView(...)

    62690

    android-tips(ScaleType)

    tips-one: scaleType    我在设置ImageView图片的大小时,scaleType属性值经常被用到,比如:设定Imageview的固定大小为50dpx60dp,实际图片大小为30dpx40dp...总结:matrix表示原图从ImageView的左上角开始绘制,如果原图大于ImageView,那么多余的部分则剪裁掉,如果原图小于ImageView,那么对原图没有变化,但会有部分区域没有填充图片。...(7)scaletype="centerCrop",代码:setScaleType(ImageView.ScaleType.CENTER_CROP); 效果如图所示: ?...总结:centerCrop的目标是将ImageView填充满,故按比例缩放原图,使得可以将ImageView填充满,同时将多余的宽或者高剪裁掉。...补充:Matrix还有别的重要用法: 该模式还可以与ImageView.setImageMatrix(Matrix matrix)配合使用,因为该模式需要用于指定一个变换矩阵用于指定图片如何展示。

    1.1K50
    领券