Android开发除了flutter还有什么是必须掌握的吗?

相信大多数从事Android开发的朋友们越来越发现,找工作越来越难了,面试的要求越来越高了

除了基础扎实的java知识,数据结构算法,设计模式还要求会底层源码,NDK技术,性能调优,还有会些小程序和跨平台,比如说flutter,以思维脑图的方式展示在下图;

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • animation-list帧动画
  • AnimationUtils与anim补间动画

1.animation-list帧动画

https://www.cnblogs.com/sishuiliuyun/p/5132713.html
第一步:先上图片素材,以下素材放到res/mipmap目录下:
第二步:上动画Animation-list帧布局文件,有2个,一个是按顺序显示动画,文件存放在res/drawable目录下
顺序显示动画文件:animation1.xml

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="true">      <!—是否只执行一次-->
    <item android:drawable="@mipmap/icon1" android:duration="800"></item>
    <item android:drawable="@mipmap/icon2" android:duration="800"></item>
    <item android:drawable="@mipmap/icon3" android:duration="800"></item>
    <item android:drawable="@mipmap/icon4" android:duration="800"></item>
    <item android:drawable="@mipmap/icon5" android:duration="800"></item>
    <item android:drawable="@mipmap/icon6" android:duration="800"></item>
</animation-list>


第三步主布局放控件

 <ImageView android:id="@+id/im"
            android:layout_width="wrap\_content"
            android:layout_height="wrap\_content"
            android:padding="5px"
            android:src="@drawable/animation1"/>
放两个按钮开始、停止


第四步主页面代码:

private ImageView im;
private AnimationDrawable animationDrawable;
im=findViewById(R.id.img);
        Button btn=findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                im.setImageResource(R.drawable.animation1);
                animationDrawable = (AnimationDrawable) im.getDrawable();
                animationDrawable.start();
            }   });
        Button btn1=findViewById(R.id.btn1);
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                animationDrawable = (AnimationDrawable) im.getDrawable();
                animationDrawable.stop();
            } });


结束监听:https://www.jianshu.com/p/dc66b371cd3b
getCurrent() 获取当前帧,得到的是一个 Drawable
然后想到能够获取指定帧的 Drawable,那么我们直接拿到最后一帧的 Drawable和当前帧做比较不就行了?就是如此
getFrame(int i) 获取指定帧的 Drawable
getNumberOfFrames() 获取总帧数
最终组合成核心代码
getFrame(getNumberOfFrames() -1) == getCurrent()

2.anim补间动画(指定开始结束其他由系统操作)
补间动画是一种设定动画开始状态、结束状态,其中间的变化由系统计算补充。这也是他叫做补间动画的原因。

补间动画由Animation类来实现具体效果,包括平移(TranslateAnimation)、缩放(ScaleAnimation)、旋转(RotateAnimation)、透明度(AlphaAnimation)四个子类,四种变化

平移:https://blog.csdn.net/qq_40881680/article/details/82255459
在res下创建anim文件夹,在这个文件夹(anim)下新建xml文件。

<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"


## 学习分享

在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了

很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘

如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。

**2021最新上万页的大厂面试真题**

![](https://img-blog.csdnimg.cn/img_convert/d9f5148a0dca9a050ade7d7d39aa458c.webp?x-oss-process=image/format,png)

**七大模块学习资料:如NDK模块开发、Android框架体系架构...**

![](https://img-blog.csdnimg.cn/img_convert/4ecd0c3a3cdbe8b937d31bdf20c4558f.webp?x-oss-process=image/format,png)

只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。

> 这份体系学习笔记,适应人群:
> 第一,学习知识比较碎片化,没有合理的学习路线与进阶方向。
> 第二,开发几年,不知道如何进阶更进一步,比较迷茫。
> 第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢!
> 由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示 。



**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

里获取](https://bbs.csdn.net/topics/618156601)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐