android video UI自定义开发

本文探讨了Android中实现视频UI自定义的方法,包括ijkplayer的封装和界面元素的隐藏。同时,介绍了Activity避免黑屏以及全屏设置。此外,还提及了Android的Loader机制在异步加载数据中的应用,讲解了HashMap、Hashtable、LinkedHashMap和TreeMap等数据结构的特点和适用场景,并推荐了Android TV开发和手势处理的相关资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

activity保持不黑屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        setContentView( R.layout.activity_main );

Android设置Activity全屏的两种方式
1.

super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.loading);
 <activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.NoActionBar"> 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 

                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 

<application 
        android:icon="@drawable/ic_launcher" 
        android:label="@string/app_name" 
        android:theme=" @android :style/Theme.NoTitleBar.Fullscreen"> 

jjdxm-ijkPlayer开源视频框架简单的日常使用
https://blog.youkuaiyun.com/qq_33517003/article/details/78678476

基于ijkplayer封装支持简单界面UI定制的视频播放器
https://www.jianshu.com/p/6c938df18413/
Android基础学习总结(十六)——基于ijkplayer封装支持简单界面UI定制的视频播放器
https://blog.youkuaiyun.com/kilotwo/article/details/79219236

隐藏部分不想要的界面
//隐藏返回键,true隐藏,false为显示
PlayerView hideBack(boolean isHide)
//隐藏菜单键,true隐藏,false为显示
PlayerView hideMenu(boolean isHide)
//隐藏分辨率按钮,true隐藏,false为显示
PlayerView hideSteam(boolean isHide)
//隐藏旋转按钮,true隐藏,false为显示
PlayerView hideRotation(boolean isHide)
//隐藏全屏按钮,true隐藏,false为显示
PlayerView hideFullscreen(boolean isHide)
//隐藏中间播放按钮,ture为隐藏,false为不做隐藏处理,但不是显示
PlayerView hideCenterPlayer(boolean isHide)

播放器底部bar播放进度条样式定制
默认的进度样式是竖屏为上下样式,即进度条在播放时长的上面,横屏为左右样式,即进度条在播放时长的中间。样式定制主要是两个方法搭配使用toggleProcessDurationOrientation方法和setProcessDurationOrientation方法,横竖屏切换2中情况,和3种进度条样式

/**上下样式*/
PlayStateParams.PROCESS_PORTRAIT
/**左右样式*/
PlayStateParams.PROCESS_LANDSCAPE
/**中间两边样式*/
PlayStateParams.PROCESS_CENTER

GitHub上受欢迎的Android UI Library

https://www.jianshu.com/p/2a9cd3cbee6a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Android TV开发(—)开始电视应用
https://blog.youkuaiyun.com/jjwwmlp456/article/details/52093459

Android okHttp网络请求之Get/Post请求
https://www.cnblogs.com/whoislcj/p/5526431.html
Android使用OKHTTP解析JSON数据
https://www.cnblogs.com/ceet/archive/2017/07/01/7101489.html
How to Leak a Context: Handlers & Inner
https://www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.html
TV开发手册
http://corochann.com/android-tv-application-hands-on-tutorial-1-45.html
异步加载数据
https://blog.youkuaiyun.com/zimo2013/article/details/10263339

一般情况下,我们用的最多的是HashMap,在Map 中插入、删除和定位元素,HashMap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。如果需要输出的顺序和输入的相同,那么用LinkedHashMap 可以实现,它还可以按读取顺序来排列.

HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为NULL,允许多条记录的值为NULL。

HashMap不支持线程同步,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致性。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力。

Hashtable与HashMap类似,不同的是:它不允许记录的键或者值为空;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtable在写入时会比较慢。

LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。

在遍历的时候会比HashMap慢TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器。当用Iterator遍历TreeMap时,得到的记录是排过序的。
Android_Loader_使用LoaderManager管理Loader实现异步动态加载数据
https://blog.youkuaiyun.com/zimo2013/article/details/10263339
Android Loader机制全面详解及源码浅析
https://blog.youkuaiyun.com/axi295309066/article/details/52536960?utm_source=blogxgwz3
Android 异步加载神器Loader全解析
http://www.cnblogs.com/punkisnotdead/p/4861376.html

https://developer.android.google.cn/reference/androidx/loader/package-summary

感受LiveData 与 ViewModel结合之美
https://blog.youkuaiyun.com/qq_17766199/article/details/80732836
Android Architecture Components应用架构组件源码详解(基于1.0以上)(第二篇ViewModel和LiveData)
https://blog.youkuaiyun.com/xiatiandefeiyu/article/details/78663612
android开发模式LiveData+ViewModel+Room+Retrofit
https://blog.youkuaiyun.com/pgg_cold/article/details/81043143?utm_source=blogxgwz1
Android:LiveData 与ViewModel的结合使用
https://blog.youkuaiyun.com/china1988s/article/details/82598068

ViewModel+LiveData最新版1.1.1的实现案例及fragment懒加载
https://blog.youkuaiyun.com/qq_36635270/article/details/80078368
MVVM 架构,ViewModel和LiveData(一)
https://blog.youkuaiyun.com/qq_36635270/article/details/80078368
android开发系列之ContentObserver
https://www.cnblogs.com/xiaocai20091687/p/android_xiaocai_contentobserver.html

www.androidchina.net

https://www.jianshu.com/p/87aa6464412b
LiveData 理解笔记 - 抽象例子、自动移除 source、Observer 原理
https://blog.youkuaiyun.com/qq_34224268/article/details/81132945
DataBinding使用全面详解
https://www.jianshu.com/p/ba4982be30f8

android 线程池的使用以及Executors的优缺点
https://blog.youkuaiyun.com/duolaimila/article/details/78732535

Android Application的作用
https://blog.youkuaiyun.com/lieren666/article/details/7598288
Android官方架构组件ViewModel+LiveData+DataBinding架构属于自己的MVVM
http://www.cnblogs.com/dev-njp/p/8783341.html
【Android入门】MVVM + LiveData & 乱入的butterKnife
https://blog.youkuaiyun.com/sst2230879/article/details/80101812
Android之定时刷新数据
https://blog.youkuaiyun.com/ytwei23668/article/details/53812956
谷歌官方Android应用架构库——LiveData
https://m.aliyun.com/jiaocheng/13132.html

Android 深入理解Loader机制 让APP轻装上阵
https://www.jianshu.com/p/385327e35711

Android—如何利用API实时获取各频道新闻?
https://blog.youkuaiyun.com/zhaoyanga14/article/details/52234555

使用Handler实现定时刷新数据,更新UI
https://blog.youkuaiyun.com/aichilubiantan/article/details/79784011
Android异步处理之AsyncTaskLoader简单使用
https://blog.youkuaiyun.com/zqlite/article/details/48092355

Android开发——BroadcastReceiver广播的使用
https://www.cnblogs.com/kexing/p/8331359.html
Aandroid TV 基于Leanback支持最新MD设计的TV开发框架
https://blog.youkuaiyun.com/sk719887916/article/details/51125438
Android TV 应用开发
https://blog.youkuaiyun.com/column/details/lyk-androidtv.html

Android手势处理及模拟滑动事件
https://blog.youkuaiyun.com/linghaidong/article/details/53408002
https://www.2cto.com/kf/201408/326931.html
https://www.cnblogs.com/zfrr/archive/2012/07/19/2599591.html

MotionEvent对象
https://www.cnblogs.com/qingblog/archive/2012/12/03/2799862.html

https://blog.youkuaiyun.com/Anmmei/article/details/78010025

((IjkMediaPlayer)mMediaPlayer).setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, “enable-accurate-seek”, 1);
Android studio添加第三方库和so
https://blog.youkuaiyun.com/anhenzhufeng/article/details/78913341

https://www.jianshu.com/p/830d0eb44a56
Android TV Leanback (五)(使用leanback创建UI)(setHeader)
https://blog.youkuaiyun.com/zhanwubus/article/details/78800547

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值