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

Android PowerImageView实现,可以播放动画的强大ImageView

我们都知道,在Android中如果想要显示一张图片,可以借助ImageView控件来完成,但是如果将一张GIF图片设置ImageView里,它只会显示这张图片的第一帧,不会产生任何的动画效果。...ImageView无法播放GIF图片说明它的功能还不够强大,那么今天我们就来编写一个PowerImageView控件,让它既能支持ImageView控件原生的所有功能,同时还可以播放GIF图片。...Bitmap mStartButton; /** * 记录动画开始的时间 */ private long mMovieStart; /** * GIF图片的宽度 */ private...如果得到的Movie对象等于null,说明这是一张普通的图片资源,就不再进行任何特殊处理,因为ImageView都帮我们处理好了。...,PowerImageView的用法和ImageView几乎完全一样,使用android:src属性来指定一张图片即可,这里指定的anim就是一张GIF图片。

1.4K50

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

我们在android开发过程中可能会遇到一种情况,一个组件需要保持固定的宽高比,但是组件本身大小却不定。比如我们需要让一个组件宽度与屏幕宽度一致,这样就无法确定宽度。那么如何让控件保持固定宽高比?...adjustViewBounds 为ImageView设置adjustViewBounds,如下: android:adjustViewBounds="true" 这样ImageView就会图片的宽高比显示...在上面示例中我们将ImageView的宽高都设置为0。就此我测试了其他的可能性,产生的几个情况如下: 1、如果组件宽高都设置0dp,组件宽高按比例,且只受view的约束。...如图 2、如果其中一个设置成了wrap_content或match_parent,比如说宽度,那么宽度就会是 图片的真实宽度view的限制宽度 的较小值,而高度会根据宽度和比例计算出来。...这时如果图片较小,就不会撑满View。如图 3、如果宽高都设置成了wrap_content或match_parent,则比例失效。

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

Android样式的开发:drawable汇总篇

普通图片 图片是最常用的drawable资源,格式包括:png(推荐)、jpg(可接受)、gif(不建议)。...fill_horizontal 在水平方向上拉伸图片填满容器的整个宽度 clip_vertical 附加选项,裁剪基于垂直方向的gravity设置设置top时会裁剪底部,设置bottom...当裁剪方向为horizontal时,会裁掉图片左右部分;当裁剪方向为vertical时,会裁掉图片上下部分 fill 拉伸整张图片填满容器的整个高度和宽度。...当裁剪方向为vertical时,图片不会被裁剪,除非level设为了0,此时图片不可见 fill_horizontal 在水平方向上拉伸图片填满容器的整个宽度。...android:duration属性设置该帧持续的时间,毫秒数为单位。

2.2K10

优酷环形菜单-相对布局练习

优酷环形菜单 布局文件,使用控件作为第一菜单,相对布局,位于控件的底部,水平居中,因为图片不是特别的标准,因此宽度和高度都钉死,宽度是高度的两倍 二次菜单和三菜单都一样的布局...小房子的图标控件,在控件中居中 第二搜索图标,位于控件的底部,上下左右maigin10dp 第二菜单图标,位于控件的顶部,水平居中,marginTop 10dp 第二叹号图标...,位于控件的底部,右边,margin 10dp 第三的图标比较多,但是原理和第二一样,只不过通过margin来定位 第三channel2的图标,位于channel1图标的上面,和channel1...6dp 第三channel4的图标,位于控件的上面,水平居中,marginTop 5dp 左侧半圆结束,右侧半圆和左侧一样的步骤 布局代码: <RelativeLayout xmlns:android..." android:background="@drawable/level1" > <ImageView android:layout_width

89620

2014-10-25Android学习------布局处理(三)------常见且常用的列表布局

但然,如果以上项模板还无法满足你的要求,那只能自定义模板了(相当简单,就是定义一个layout布局)。...list_view_row.xml中我们如何像下面的这样格式呢: 左边是图片,右边是两个文本显示控件,并且是上面是图片代表的食物,下面是该食物的介绍, 1)显然我们需要明确的就是图片的大小------它的宽度不是填充窗体的...2)猪肉和黄连这两行文本显示控件的大小-------它的宽度应该是填充窗体的,(这个时候的填充窗体是指在当前的水平方向的线性布局中剩下的空间),,它的宽度也可以是包裹内容的,因为我们清楚这里的汉字显示的个数很少...省略号显示在开头; ”end” ——省略号显示在结尾; ”middle”—-省略号显示在中间; ”marquee” ——跑马灯的方式显示(动画横向移动) 4)上面的汉字显示文本框(黄连),它的内容应该是动态设置的...="@id/ImageView01" 表示TextView控件在id=ImageView01的控件的右边 6)android:layout_alignParentRight //贴紧元素的右边缘

1.1K30

《Monkey Android》第12课ImageView

ImageView的XML属性 android:src,设置ImageView要显示的图片; android:adjustViewBounds,是否保持宽高比,需要和maxWidth、maxHeight...一起使用,否则单独使用没有效果; android:maxWidth,设置View的最大宽度android:maxHeight,设置View的最大高度; 如果想设置图片固定大小,又想保持图片宽高比,...需要这样设置android:adjustViewBounds设置为true; android:maxWidth和android:maxHeight要设置android:layout_width...,居中显示 android:scaleType=”fitEnd”,把图片按比例扩大(缩小)到View的宽度,显示在View的下部分位置 android:scaleType=”fitStart”,把图片按比例扩大...在实际需求中,我们可能会用到更高级的用法,如显示圆形头像,或者动态的gif,又或者图片的缩放与缩略图等等,这些就需要我们自己取实现ImageView了,后面都会讲到。

63320

六天完成一个简单iOS App - 第五天

图片xib 这里图片里面又分为普通图片、gif图片、长图。需要根据图片的不同判断gif标识ImageView和点击查看大图Button是否隐藏。...,显示顶部为准 self.imageView.contentMode = UIViewContentModeTop; self.imageView.clipsToBounds = YES...并且同样需要注意cell重用的问题,设置显示gif标识和查看大图button显示就需要在相对的方法中设置隐藏,防止cell重用时发生错乱。...未处理长图显示 图片被压缩填充在ImageView中,此时在判断如果是长图的方法中修改imageView的contentMode即可 // 设置imageView的内容顶端对齐显示,多余的会被裁剪掉...子控制器内的代码变得非常简单,只需要重写覆盖类的get方法即可,并且可以在子类中对子类进行一些个性化的设置

85860

Android开发基础:布局,监听以及一些基础知识

宽度和高度匹配上一,最外层的上一是屏幕 wrap_content:匹配下一,下一多大,他多大 fill_parent:已废弃 固定数值:单位通常使用dp dp可以根据像素密度进行匹配 android...android:text="@string/text_value" /> android:layout_centerInParent=“true”:设置的中心 setContentView...:layout_gravity="center" //设置组件在组件的位置 weight: 用于按照权重的比值设置宽和高的比例,只能应用于线性布局 给那个属性设置权重,就给这个属性设置0dp android...-- 定义一个用于显示头像的ImageView --> <ImageView android:id="@+id/imgtou" android:layout_width...,监听器会一直监听某个事件的响应 当监听到事件变化就会调用回调函数 点击事件为例学习监听器 1.给需要监听的控件设置一个id 2.java代码中设置监听 3.根据id找到监听的id(注意,这里寻找的id

12010

Android布局属性详解

垂直居中 android:layout_centerInparent 相对于元素完全居中 android:layout_alignParentBottom 贴紧元素的下边缘 android...你可以设置该text 在view的靠左,靠右等位置.button为例,android:gravity="right"则button上面的文字靠右 android:layout_gravity android...:layout_gravity是用来设置该view相对与起view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置button...android:scaleType: android:scaleType是控制图片如何resized/moved来匹对ImageView的size。...,居中显示 FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置 FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在

91930

android 相对布局(RelativeLayout)

垂直居中   android:layout_centerInparent 相对于元素完全居中   android:layout_alignParentBottom 贴紧元素的下边缘   android...你可以设置该text 在view的靠左,靠右等位置.button为例,android:gravity="right"则button上面的文字靠右 android:layout_gravity android...:layout_gravity是用来设置该view相对与起view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置button...android:scaleType: android:scaleType是控制图片如何resized/moved来匹对ImageView的size。...,居中显示 FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置 FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在

94520

一篇文章弄懂Android自定义viewgroup的相关难点

实际上,view对子view的限制绝大多数就来自于我们开发者所设置的layout开头的这些属性 比方说我们给一个imageview设置了他的layout_width和layout_height 这2...个属性,那这2个属性其实就是我们开发者 所期望的宽高属性,但是要注意了, 设置的这2个属性是给view看的,实际上对于绝大多数的layout开头的属性这些属性都是设置view看的 为什么要给...的宽高比 在高保真中都标注出来,但是考虑到很多手机的屏幕宽度或者高度都不确定 所以我们通常都要手动来计算出这个imageview高度或者宽度,然后动态改变width或者height的值。...这种方法可用但是很麻烦 这里给出一个自定义的imageview,通过设置一个ratio的属性即可动态的设置iv的高度。很是方便 ? 看下效果 ?...if (childView.getMeasuredWidth() remaining) { //另外启动一行的时候,使用过的宽度 当然要设置为0 usedWidth = 0; //另外启动一行了

66330

Android 关于GridView那些事

先看一下效果: 不知道为什么,整成gif的横线就没有了,在模拟器上也看不到,真机上是没有问题的,纠结死小编了 image.png image.png 首先我们来看看GridView的一些常用的属性吧...1.android:numColumns=”auto_fit” //GridView的列数设置为自动 2.android:columnWidth=”90dp ” //每列的宽度,也就是Item的宽度...=”true” //设置为true就可以实现滚动条的自动隐藏和显示 10.android:fastScrollEnabled=”true” //GridView出现快速滚动的按钮(至少滚动4页才会显示...要想实现这种功能我们要设置imageviewandroid:clickable=”true”,看一下布局文件: <ImageView...listener.getPostion()); // view.getParent().requestDisallowInterceptTouchEvent(false);//通知控件勿拦截本控件

82610

深入理解Glide(1)——Glide的使用

:name="android.permission.INTERNET" /> 基本使用 我们通过一个demo来展示Glide的使用方法,首先创建一个Android工程,在布局中添加一个ImageView...,Activity,Fragment等 2.load:重载方法,可传入图片地址的Uri,本地资源id等 3.into:参数为一个ImageView或Taget对象 占位图设置 为了给用户更好的体验...); placeholder为设置图片加载前占位图,error为设置加载出错后占位图。...显示GIF Glide的强大之处在于除了加载图片之外,还可以加载GIF Glide.with(this).asGif().load(url).into(imageView); 如上代码即可展示GIF...图,如果图片不是GIF格式则会按error处理 设置缓存 Glide缓存的设计是三缓存,两内存缓存和一硬盘缓存,默认情况下开启了内存缓存和硬盘缓存,如果需要将内存缓存禁掉,可以使用如下代码:

66240

《移动互联网技术》第五章 界面开发: 掌握Activity的基本概念,Activity的堆栈管理和生命周期

在布局标签()中可以设置布局本身的各个属性,比如“android:orientation”表示布局的方向,水平摆放为例,android:orientation=“horizontal”,这样控件就会从左到右进行排列...注意TableRow中的控件是不能指定宽度的。 因为在TableRow中无法指定控件的宽度,如果想调整控件的宽度,可以设置android:stretchColumns属性来解决这个问题。...android:stretchColumns允许将TableLayout中的某一列进行拉伸,达到自动适应屏幕宽度的作用。...在适配器中,可以设置不同的列表项布局,展示不同的列表效果。在Android系统中已经定义了常用的列表显示效果。...过滤器的匹配结果多于一个,则可以根据在标签中定义的优先标签来对Intent过滤器进行排序,优先最高的Intent过滤器将被选择。

9510

Android LinearLayout实现自动换行

由于前段时间项目中使用到了自动换行的线性布局,本来打算用表格布局在里面一个个的用Java代码添加ImageView的,但是添加的View控件是不确定的,因为得靠服务器的数据返回,就这样手动用Java代码画布局的方式就这样夭折了...,因为在表哥布局中我无法确定一行显示多少个ImageView的数目,所以无法动态添加,最后自能自己去看看那种能够换行的线性布局了,线性布局比较不好的是不能自动换行,也就是当设置LinearLayout的...需要了解的是怎么样绘制根据子控件的长宽绘制控件的宽度与高度,所以需要传入的参数控件的高度,视图分为两种一种是View类型的,代表控件有TextView,Button,EditText 等等,还有一种是装视图的容器控件继承自...ViewGroup的控件,如LinearLayout,RelativeLayout,TabHost等等控件,需要自动换行的线性布局的话,就需要根据子控件的高度与宽度,来动态加载控件的高度与宽度,所以需要在构造函数中传入每一个子控件的固定的高度...,或者是动态设置子控件的高度与宽度

4.4K51

Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了

这时 ObjectAnimator、ValueAnimator 为代表的属性动画也就应运而生了。...---- 简单效果 ---- 工作原理 属性动画字如其名,是通过改变 View 的属性值来改变控件的形态,说白了就是通过反射技术来获取控件的一些属性如宽度、高度等的 get 和 set 方法,从而实现所谓的动画效果...这里就不在赘述了,大家可以自己试试看(我 GIF 图中,右下角的动画,就是旋转 + 透明度) ---- 使用 ValueAnimator 实现属性动画 ValueAnimator 是 ObjectAnimator...的类,他两之间的区别是,ObjectAnimator 在ValueAnimator 的基础上,通过反射技术实现了动画功能,也就像我刚刚所举的例子,子要给了 ObjectAnimator 两个值(from...那么我们在执行完多小动画,也就是 animationDown 后,就无法在获得控件原始大小了。

1.8K30

Android Notes|细数「八大布局」那些事儿

设置半径 6.尺寸限制 也可以为 ConstraintLayout 自身定义最小和最大大小: 属性 作用 android:minWidth 设置布局的最小宽度 android:minHeight 设置布局的最小高度...android:maxWidth 设置布局的最大宽度 android:maxHeight 设置布局的最大高度 当 ConstraintLayout 内部子 View 宽度/高度为 0dp,则同等于...使用这块需要注意: 设置宽度/高度百分比时,需要先将对应的宽/高设置为 0dp; 默认值应设置为百分比 app:layout_constraintWidth_default="percent" 或 app...:weightSum 行内可设置的最大占比权重 android:layout_weight 当前 View 占比权重 android:baselineAligned 容器布局是否对齐子 View 基线.../TableRow> android:stretchColumns: 设置某列宽度为剩余行宽度 [f4fd7e072ffe48b2a987409000e441cb~tplv-k3u1fbpfcp-watermark.image

1.8K00

前端硬核面试专题之 CSS 55 问

一个块元素如果没有设置 height,那么其高度就是由里面的子元素撑开,如果子元素使用浮动,脱离了标准的文档流,那么元素的高度会将其忽略,如果不清除浮动,元素会出现高度不够,那样如果设置 border...清除浮动的方式 div 定义 height,原理: div 手动定义 height,就解决了 div 无法自动获取到高度的问题。...不占据空间,无法类元素撑开。 任何元素都可以浮动,浮动元素会生成一个块框,不论它本身是何种元素。因此,没有必要为浮动元素设置 display:block。...;而 inline 水平方式布局,垂直方向的 margin 和 padding 都是无效的,大小跟内容一样,且无法设置宽高。...影响 浮动会导致元素无法被撑开,影响与元素同级的元素。

2K20
领券