Android 图像动画
文章平均质量分 61
源码下载: https://github.com/nai-chen/AndroidBlog
假装你是大灰狼
移动端工程师
展开
-
Android MediaStore的使用
上文中提到了Android提供内容的叫,那么在Android中怎么区分各个Provider?有的是提供联系人的,有的是提供图片的,有的是提供视频的等等。所以就需要有一个唯一的标识来标识这个ProviderUri(通用资源标识符)就是起到了这个标识的作用。每一个都会有一个唯一的Uri地址,通过这个Uri标识可以获取到和其中的数据,然后进行数据操作。使用的Uricontent://是通用前缀,表示该Uri用于定位资源。authority是授权者名称,用来确定具体由哪一个提供资源。因此一般authority。转载 2023-10-09 17:54:08 · 991 阅读 · 0 评论 -
Android 视频编辑解析库MP4Parser
在 GitHub 上找到这个库后从README开始。官方写到大概意思就是:读,写和创建MP4容器,操作容器不同于编码和解码。并不知道什么意思,继续往下。之后给出了混合音频和视频的操作方式;依赖库中支持的几种格式;一种特殊问题,音视频播放不同步的解决方案;明确强调和是不能进行拼接合并操作的。简单小结:使用此库可以实现多个音频视频的追加合并,将视频的音频和视频进行分离替换等,同时还支持了字幕的添加,使用时候需要注意音视频格式。转载 2023-09-06 13:00:40 · 560 阅读 · 0 评论 -
Android MediaRecorder录音
最近在项目中实现录音功能,并在逻辑中还有对录音文件的特殊要求,前前后后看了很多资料,学习了很多,今天在这里分享记录一下,以便后期回看。和。:录制的音频文件是经过压缩后的,需要设置编码器。并且录制的音频文件可以用系统自带的Music播放器播放。已经集成了录音、编码、压缩等,并支持少量的录音音频格式,但是这也是他的缺点,支持的格式过少并且无法实时处理音频数据。:主要实现对音频实时处理以及边录边播功能,相对。原创 2023-09-06 11:26:30 · 688 阅读 · 0 评论 -
Android 播放视频之ExoPlayer
在中,我们了解了系统自带的VideoView来播放视频,但其支持的视频格式偏少,我们需要其他的视频播放器。ExoPlayer是Google的开源的应用级媒体播放器项目,支持多种视频格式和流媒体播放,。原创 2023-05-08 11:01:16 · 3755 阅读 · 1 评论 -
Android 播放视频之VideoView
VideoView继承,并且实现了接口,相当于的组合。关于可参考。在布局文件里添加VideoView在Activity里面播放视频。原创 2023-05-04 16:42:32 · 3293 阅读 · 1 评论 -
Android 实现GIF播放的几种方式
这4种方式都能很好地在手机上运行,但在小米盒子上出现了不同的问题。Glide本身就是很好用的图片框架,但在小米盒子上出现了运行缓慢的问题,一个3秒的GIF图片需要十几秒的时间才能跑完。没有出现运行缓慢的问题,但刷新闪烁比较严重。Movie能正常显示GIF图片,但如果想只运行一次的情况下,很难显示到最后一帧的图片。最大的问题是版本要求太高,需要Android9.0。原创 2022-11-08 10:44:41 · 9893 阅读 · 0 评论 -
Android SubsamplingScaleImageView简单应用
SubsamplingScaleImageView是一个图片浏览库,支持点击和缩放,支持长图和超大图。目前只支持本土访问,可配合图片管理工具使用。如果加载的是长图,图片也会居中显示。加载后的图片会居中显示,原创 2022-09-20 18:08:05 · 1798 阅读 · 0 评论 -
Android PhotoView简单应用
PhotoView是一个图片浏览器,支持多点触摸来进行图片的滚动和缩放。原创 2022-09-20 13:26:17 · 3140 阅读 · 0 评论 -
Android Glide应用中遇到问题
在实际项目中,我们往往会有一些特殊需要。比如我们通过url返回图片的字节流,还需要Base64解码才能使用。定义类,继承,需要实现函数class GlideDownloadPic(val picUrl : String) : Key {定义,继承。Factory继承,在后面注册时使用。函数用来获取图片数据。{定义,继承。.........原创 2022-08-31 16:30:50 · 1170 阅读 · 0 评论 -
Android ViewDragHelper类
ViewDragHelper是个工具类,用来辅助ViewGroup内控件的操作和拖拽。1. ViewDragHelper创建ViewDragHelper通过静态方法create()创建,public static ViewDragHelper create(ViewGroup forParent, Callback cb)public static ViewDragHelper create(ViewGroup forParent, float sensitivity, Callback cb)原创 2020-06-09 17:16:44 · 1068 阅读 · 0 评论 -
Android Glide简单使用
Glide是谷歌为我们推荐的一个图片加载库。为什么要选择使用Glide呢?1、代码有人维护,不至于出现问题,项目组都搞不定的时候问题无法解决。(ImageLoader已没人维护了)2、代码简洁,可读性很好。(Fresco是一个非常优秀的库,但是配置稍显麻烦,同时代码风格读起来有些生疏)3、功能强大(400多k的包,包含很多功能,例如:像加载Gif图片就是Picasso做不到的)下面我们...转载 2020-01-15 11:11:26 · 19537 阅读 · 5 评论 -
Android Bitmap内存优化
Android开发中,Bitmap是经常会遇到的对象,特别是在列表图片展示、大图显示等界面。而Bitmap实实在在是内存使用的“大客户”。如何更好的使用Bitmap,减少其对App内存的使用,是Android优化方面不可回避的问题。因此,本文从常规的Bitmap使用,到Bitmap内存计算进行了介绍,最后分析...转载 2019-03-08 17:35:33 · 425 阅读 · 1 评论 -
Android Bitmap详解
一、Bitmap:Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。常用方法:public void recycle() // 回收位图占用的内存空间,把位图标记为Deadpublic fina...转载 2019-03-01 10:44:44 · 5705 阅读 · 1 评论 -
Android 9.png图片
9.png是一种可以自定义拉伸特定区域的图片格式。在Android的UI设计开发中,很多控件需要适配不同的手机分辨率进行拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”。这种图片是用于Android开发的一种特殊的图片格式,它可以指定特定的区域进行拉伸而不失真,同时可以指定前景内容的显示区域。转载 2019-03-01 10:08:13 · 258 阅读 · 1 评论 -
Android Canvas类
1. Canvas类Canvas主要用于2D绘图,它提供了很多相应的drawXxx()方法,Canvas的获取方式有三种重写View的onDraw(Canvas)方法 @Override protected void onDraw(Canvas canvas) { }SurfaceView通过lockCanvas()方法获取Canvas @Override ...原创 2019-02-25 15:55:50 · 1833 阅读 · 1 评论 -
Android Paint类
1. Paint常用方法setColor(int),设置画笔的颜色setAlpha(int),设置画笔的透明度setARGB(int a, int r, int g, int b),设置画笔的颜色,a代表透明度,r,g,b代表颜色值setAntiAlias(boolean),设置是否使用抗锯齿功能,设置后会平滑一些setDither(boolean),设定是否使用图像抖动处理,设置后图像更加清晰setStyle(Style),设置画笔的风格Style.FILL,实心Style.FILL_A原创 2019-02-22 17:48:07 · 7278 阅读 · 1 评论 -
Android Path类
1. Path常用方法点操作 // 设置起始点,(x,y)为绝对路径,(dx,dy)为相对路径 moveTo(float x, float y) rMoveTo(float dx, float dy)线操作 // 设置线的终点,(x,y)为绝对路径,(dx,dy)为相对路径 lineTo(float x, float y) rLineTo(float dx, ...原创 2019-02-19 17:32:56 · 2957 阅读 · 1 评论 -
Android Scroller和VelocityTracker类
1. scrollXX()方法scrollTo()和scrollBy()是用于滑动View中的内容scrollTo(int x, int y) // 将View中内容滑动到相应的位置scrollBy(int x, int y) // 将View中内容滑动相对的位置对于一个View来说,有一个View视图和一个Canvas。滑动时会移动View视图,显示不同的Canvas部分。下面例子中...原创 2019-02-12 17:03:06 · 631 阅读 · 1 评论 -
Android MediaMetadataRetriever类
获取视频信息获取视频图片MediaMetadataRetriever retriever = new MediaMetadataRetriever();retriever.setDataSource(filePath); // 设置视频位置Bitmap bmp = retriever.getFrameAtTime(); // 视频第一帧图像获取视频宽高,可以通过图像,也可以通过extr...原创 2019-01-29 13:25:31 · 866 阅读 · 1 评论 -
Android MediaCodec类
1. MediaCodec播放音频private void startAudio(String fileName) { mStopAudio = false; MediaExtractor extractor = new MediaExtractor(); try { AssetFileDescriptor fd = getAssets().openFd(...原创 2019-01-29 11:13:08 · 561 阅读 · 1 评论 -
Android MediaPlayer类
1. MediaPlayer方法MediaPlayer创建可以直接调用构造函数,利用setDataSource()方法设置资源。 MediaPlayer mp = new MediaPlayer(); // path可以是本地路径,也可以是网络地址 mp.setDataSource(String path);也可以调用create()方法,create()方法会直接调用pr...原创 2019-01-29 09:33:25 · 14221 阅读 · 1 评论 -
Android Selector应用
Selector主要用于状态切换时显示不一样的界面。1. item用于指定不同的状态。android:state_pressed控件是否被按压android:state_selected控件是否被选择android:state_enabled控件是否可用2. 使用图片作为背景布局文件<Button android:layout_width="60dp" an...原创 2019-01-28 17:20:09 · 227 阅读 · 1 评论 -
Android Shape应用
1. Shape的形状有四种android:shape="rectangle|oval|ring|line" 指定形状<shape android:shape="rectangle" > <solid android:color="#ffff8c00" /></shape><shape android:shape=&q原创 2019-01-28 14:37:09 · 409 阅读 · 1 评论 -
Android FontMetrics类
FontMetrics类可以计算字符的高度。获取FontMetricsPaint paint = new Paint();Paint.FontMetrics fm = paint.getFontMetrics();FontMetrics中属性FontMetrics类有四个属性,分别是top, ascent, descent, bottom,是与base的相差的距离Paint pai...原创 2019-01-28 13:35:28 · 691 阅读 · 1 评论 -
Android ImageView类
ImageView类可以加载图片主要属性android:src,设置图片资源android:scaleType,设置图片的填充方式。android:adjustViewBounds,是否保持宽高比。android:maxHeight,设置View的最大高度。android:maxWidth,设置View的最大宽度adjustViewBounds,需要与maxWidth、MaxHei...原创 2019-01-26 16:06:46 · 765 阅读 · 1 评论 -
Android Transition动画
1. 场景过渡动画场景过渡动画是指以动画的形式实现View两个场景的切换,场景过渡动画中有两个特别关键概念:Scene(场景),Transition(过渡)。Scene,代表一个场景Transition,用来设置过渡动画效果用的系统给提供了一些Transition动画效果。 系统Transition 说明 ChangeBounds 检测view的位置...原创 2018-08-23 16:57:45 · 2305 阅读 · 1 评论 -
Android 组件动画
1. 组件动画设置ViewGroup的layoutAnimation属性,指定组件动画配置。android:layoutAnimation=&amp;amp;amp;amp;amp;quot;@anim/anim_layout_animation&amp;amp;amp;amp;amp;quot;配置属性delay,动画播放延迟时间animationOrder,子控件播放动画顺序。animationOrder的值为normal、re原创 2018-08-22 16:55:20 · 978 阅读 · 1 评论 -
Android 属性动画
1. 前言属性动画就是,动画的执行类来设置动画操作的对象的属性、持续时间,开始和结束的属性值,时间差值等,然后系统会根据设置的参数动态的变化对象的属性。2. ValueAnimatorValueAnimator主要负责值的计算和过度,以及动画的播放次数、播放模式和动画监听等。ValueAnimator animator = ValueAnimator.ofFloat(1, 0....原创 2018-08-22 15:27:18 · 1573 阅读 · 1 评论 -
Android 帧动画
1. 前言帧动画就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果。2. 帧动画配置在drawable下配置文件drawable_frame.xml&amp;amp;amp;amp;amp;lt;animation-list xmlns:android=&amp;amp;amp;amp;quot;http://schemas.android.com/apk/res/android&amp;amp;amp;amp;原创 2018-08-22 13:13:05 · 407 阅读 · 2 评论 -
Android Animation动画
1. 前言补间动画:给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变。只能应用于View对象,而且只支持一部分属性,主要分为四大类移动,缩放,旋转,透明。2. 使用方式在XML资源中定义,使用AnimationUtils.loadAnimation方式加载 duration,属性为动画持续时间,时间以毫秒为单位fillAfter,当设置为true,该动...原创 2018-08-22 11:06:47 · 730 阅读 · 1 评论