Advertisement

Android 2024 年 Android VideoView 简单教程, 华为 2024 年 软件开发工程师 面试题

阅读量:

重要知识点

针对前述关键技术点,多位Android领域资深专家进行了系统性归纳,并汇总了相关的深入解析内容及高级教程资源。

高阶进阶专题——深度定制化界面开发(节选)

UI相关技术已成为当前开发人员最为广泛掌握的领域之一。曾经风靡一时的Android初级课程体系中,仅需熟练运用基础模块便足以在就业市场中占据优势。然而时至今日这种认知已明显滞后于行业发展需求——唯有摒弃机械式复制代码的工作模式,在真实项目环境中进行系统性实践,并结合源码剖析与底层机制探究才能实现能力突破!

  • 关于面试问题的章节汇总资料

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

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

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

//widthMeasureSpec : 期望的宽度(可以理解为布局文件的宽度)

//heightMeasureSpec : 期望的高度(可以理解为布局文件的高度)

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

Log.e(TAG, “onMeasure: widthMeasureSpec–” + widthMeasureSpec + " heightMeasureSpec:" +

heightMeasureSpec);

//获取控件的宽度,手动进行测量

//获取被父控件约束的宽度或者是高度

//参数1:默认控件的宽/高

//参数2:父控件约束的宽/高

int width = getDefaultSize(0, widthMeasureSpec);

int height = getDefaultSize(0, heightMeasureSpec);

this.setMeasuredDimension(width, height);

}

}

3.拖动进度条,播放指定位置的视频


@Override

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

if (fromUser) {

//如果是用户改变的,那么将视频进度移动到指定位置进行播放

mVideoView.seekTo(progress);

}

}

4.切换全屏,取消全屏


/**

切换全屏,取消全屏

@param isChecked

*/

private void switchFullScreen(boolean isChecked) {

if (isChecked) {

//切换到全屏模式

//添加一个全屏的标记

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

//请求横屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

//设置视频播放控件的布局的高度是match_parent

FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mVideoRootView.getLayoutParams();

//将默认的高度缓存下来

mVideoHeight = layoutParams.height;

layoutParams.height = FrameLayout.LayoutParams.MATCH_PARENT;

mVideoRootView.setLayoutParams(layoutParams);

} else {

//切换到默认模式

//清除全屏标记

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

//请求纵屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

//设置视频播放控件的布局的高度是200

FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mVideoRootView.getLayoutParams();

layoutParams.height = mVideoHeight; //这里的单位是px

mVideoRootView.setLayoutParams(layoutParams);

}

}

横竖屏切换时的生命周期总结:

最后

感觉现在好多人都在说什么安卓快凉了,工作越来越难找了。又是说什么程序员中年危机啥的,为啥我这年近30的老农根本没有这种感觉,反倒觉得那些贩卖焦虑的都是瞎j8扯谈。当然,职业危机意识确实是要有的,但根本没到那种草木皆兵的地步好吗?

Android凉了都是弱者的借口和说辞。虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。

所以,最后这里放上我耗时两个月,将自己8年Android开发的知识笔记整理成的Android开发者必知必会系统学习资料笔记,上述知识点在笔记中都有详细的解读,里面还包含了腾讯、字节跳动、阿里、百度2019-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。

本套完整的学习笔记及面试指南若能熟练掌握其中半数内容,则足以在面对招聘方时占据主动地位。唯有自身具备足够实力并持有核心竞争力这一核心要素时方能拥有拒绝录用通知的话语权。因此,请各位持续精进自我!古语云'千里之行始于足下'——栽种树木最适宜的时节莫过于十年前;若错过此期,则当下便是最佳时机。

临别之际谨以诗句相赠共勉:

不沉溺于空洞幻想亦不追逐虚幻声名。铭记初心方可抵达终点。

尽管网络上充斥着海量的学习素材库,然而倘若所学知识未能形成系统化认知体系,在遭遇具体问题时仅停留于表面了解而缺乏深入探究精神,则难以实现实质性的专业成长能力提升。

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

诚邀您参与我们的社群平台(涵盖技术研讨、资源分享、职场经验交流、名企内推机会及求职指导服务),无论您是已在IT行业深耕多年的专业人士还是对该领域充满兴趣的新手群体皆受欢迎!让我们携手同行共同进步!

入研究则难以达成实质性的专业成长能力提升。

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

诚邀您参与我们的社群平台(涵盖技术研讨、资源分享、职场经验交流、名企内推机会及求职指导服务),无论您是已在IT行业深耕多年的专业人士还是对该领域充满兴趣的新手群体皆受欢迎!让我们携手同行共同进步!

全部评论 (0)

还没有任何评论哟~