![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
猫的于
这个作者很懒,什么都没留下…
展开
-
ExoPlayer的基本使用,播本地raw,播网络,缓存, 旋转
exoplayer 基本使用,播放本地,网络,缓存,画面旋转 rotation-degrees原创 2022-03-12 16:23:23 · 4715 阅读 · 0 评论 -
MediaExtractor + MediaCodec 实现解析本地视频流并播放
/*** * @author : 于德海 * time : 2022/1/26 11:20 * desc : */public class VideoDecoder { private MediaExtractor videoExtractor; private FileInputStream fileInputStream; private Surface mSurface; private MediaCodec mVideoCodec; boole.原创 2022-01-27 14:19:25 · 1604 阅读 · 0 评论 -
Android手柄数据全解析
前言功能需要,获取物理手柄数据(本文章只针对处于Android模式的手柄),然后转换成云需要的数据。手柄数据主要分为两款,一个是轴数据,一个是按键数据,下面分别来说明。判断是否是手柄设备 public static boolean isJoyStick(InputEvent event) { boolean sourceJoy = (event.getSource() & InputDevice.SOURCE_JOYSTICK) == In原创 2021-11-18 18:01:08 · 3958 阅读 · 0 评论 -
仿抖音视频播放 基于GsyVideoPlayer+ViewPager2
前言公司最近有个小的演示需求,大体首页模仿抖音,因此抽时间做了这么个项目,顺便练练手,demo用Kotlin+AndroidX实现。视频库采用GsyVideoPlayer话不多说,先上效果图实现实现方式ViewPager2(ViewPager2 其实就是RecyclerView + SnapHelper)代码流程创建adapter并与ViewPager2绑定监听ViewPager2的PageChange,触发onPageSelect时进行视频播放 viewPager2.原创 2021-04-02 15:23:11 · 2445 阅读 · 3 评论 -
Android获取手机的地区与时区
mapAction.put("locale", Locale.getDefault().getCountry()+"("+Locale.getDefault().getDisplayCountry()+")");mapAction.put("TimeZone", TimeZone.getDefault().getDisplayName(true, TimeZone.SHORT));原创 2020-12-10 16:24:23 · 1919 阅读 · 0 评论 -
Android获取手机的地区与时区
mapAction.put("locale", Locale.getDefault().getCountry()+"("+Locale.getDefault().getDisplayCountry()+")");mapAction.put("TimeZone", TimeZone.getDefault().getDisplayName(true, TimeZone.SHORT));原创 2020-12-10 16:24:23 · 1606 阅读 · 0 评论 -
Kotlin实现,MediaExtractor+MediaCodec+AudioTrack音视频播放
属性介绍videoExtractor :视频源audioExtractor :音频源mediaCodecVideo :视频解码mediaCodecAudio : 音频解码audioTrack : 音频播放VideoInPutThread : 解码注入VideoOutPutThread : 视频解码输出AudioInPutThread : 音频注入AudioOutPutThread : 音频输出播放注册surfaceHolder回调 create中开启视频源解析播放, destory原创 2020-11-10 09:56:24 · 958 阅读 · 0 评论 -
【Pixel刷机】记录一次Pixel 2 刷机, root
相关地址官方固件 https://developers.google.com/android/ota (原生Rom)刷机插件 https://twrp.me/检测root的工具? https://github.com/topjohnwu/Magisk/releases/使用无法开机那解决不了,解决的是启动卡死在开屏的第一步 : 进入fastbootgoogle 系列或者大部分手机都是 关机加音量+ 关机加音量- 或者关机加音量加减,都试试总有一个适合你。第二部 : 打开下载的官方固原创 2020-10-16 14:55:19 · 2939 阅读 · 1 评论 -
Android 实现下载限速跟下载网速统计
引言没啥想说的,就是有这个需求,就写下一切皆在代码中。代码package com.cyber.longurl;import android.util.Log;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.math.BigDecimal;import okhttp3.Call;import o原创 2020-07-24 17:04:30 · 1886 阅读 · 1 评论 -
部分华为手机解h265绿屏问题。
前言华为荣耀某型号手机解h265绿屏,无法解码。解华为手机内置两个解码库,一个自己的,一个OMX.google.hevc.decoder自己的解码绿屏使用google的没问题,使用type方式创建解码库会优先走他自己的so解决办法如下 String type = MediaFormat.MIMETYPE_VIDEO_HEVC; mFormat =...原创 2020-03-19 20:36:17 · 1767 阅读 · 0 评论 -
AndroidTV开发之串口调试
前提拥有一条串口线,一台电脑,对应的设备,拆开盒子暴露串口。串口调试工具。SecureCRT过程1.插入串口线 建立电脑与串口的通道2.win+r输入devmgmt.msc 打开设备管理器 找到串行号3.运行secureCRT软件文件>连接>快速连接配置如下端口选择设备管理器对应的串口行点击连接即可。End拜拜...原创 2020-03-10 10:30:35 · 954 阅读 · 0 评论 -
AndroidStudio编译丢失aar文件中的so
现象aar中的armeabi-v7a文件内有两个so 最后编译出的apk只有其中一个so(出现so全部丢失大多因为aar只有armeabi-v7a的so 注工程除v7a 还拥有v8a的文件夹,且运行设备为v8a cpu)解决方式删除build文件夹从新编译问题原因初步怀疑因为缓存问题,或者运行内存不足,看编译log并未发现报错 但c盘可用空间只有1个G注:我的as放在c盘 因为c盘为...原创 2020-02-24 19:05:12 · 3753 阅读 · 0 评论 -
MediaCodec+MediaExtractor实现选取本地视频文件进行解码 kotlin代码实现
mediacodec视频硬解码不喜欢多比比 直接上代码需要配置provider 适配7.0+ 具体怎么配置自行googlepackage com.cyber.app_test.ui.atyimport android.app.Activityimport android.content.Intentimport android.content.pm.ActivityInfoimp...原创 2019-12-25 19:01:06 · 1031 阅读 · 1 评论 -
部分Android6.0机型无法安装data/user/0/包名下的apk文件
前言项目需求 安装apk不弹申请存储权限框。因6.0以下(6.0部分机型默认也会给存储权限)默认存储权限 ,so 判断方式为: if(EasyPermissions.hasPermissions(BaseApplication.getNowActivity(),permissions)) { downloadFile = new File(Environment.g...原创 2019-10-31 16:01:12 · 5041 阅读 · 0 评论 -
AndroidStudio 多渠道打包及获取渠道值以及如何转义纯数字
Build配置在android{}内加productFlavors { sanxing { manifestPlaceholders = [CHANNEL_VALUE: "32d2sss"] } guanwang { manifestPlaceholders = [CHANNEL_VALUE: "\\00000...原创 2019-10-28 16:00:21 · 744 阅读 · 0 评论 -
Android 根据String字符串长度判断展开收起并解决RecyclerView中 错位的问题
功能公司需求有圈子功能,超过三行要显示一个全文按钮 点击展示所有内容,并变为收起,点收起显示三行。判断是否超过最大行代码/** * 计算文本的长度是否超过最大行 * * @param text * @return */ public static boolean isGTmaxLines( String text,Con...原创 2018-04-02 14:55:02 · 1167 阅读 · 0 评论 -
Android全面屏手机判断NavigationBar是否可见
if(root_view_height < DisplayUtils.getScreenHeight(VideoPlayerActivity.this)){ layoutParams.bottomMargin = mainInvisibleHeight- BarUtils.getNavBarHeight(); ...原创 2018-09-11 16:50:29 · 3349 阅读 · 0 评论 -
Android 录音 与播放本地音乐功能的实现
一切尽在代码中package rjh.yilin.ui.activity;import android.Manifest;import android.app.Activity;import android.content.Intent;import android.media.MediaPlayer;import android.media.MediaRecorder;impo...原创 2018-09-04 17:53:15 · 1358 阅读 · 0 评论 -
EasyPermission 的使用方式 记录一下
一切尽在代码中package rjh.yilin.ui.activity;import android.Manifest;import android.content.Intent;import android.os.Bundle;import android.support.annotation.NonNull;import android.view.View;impor...原创 2018-09-04 17:50:49 · 950 阅读 · 0 评论 -
Adnroid Dialog,DialogFragment 弹出导致沉浸栏(statusbar)变黑的问题
经测试 动态设置屏幕宽高可解决getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ConfigYibaisong.window_y);//宽度随意 高度不能用ViewGroup.LayoutParams.MATCH_PARENT,高度自己获取屏幕高度然后set进去就可。 ...原创 2018-08-17 10:27:35 · 9059 阅读 · 2 评论 -
高德地图设置比例尺比例以及地图中心点。
aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(),location.getLongitude()),16));16就是比例尺比例 越大 1px 对应的比例越小 最高19 1:50 只是高德地图 ...原创 2018-04-09 13:29:33 · 10222 阅读 · 0 评论 -
Android 自定义View之 圆环进度条
效果图思路一共需要画四个圆弧 第一个 最外层的边 第二个 圆环 第三个 内边 第四个 数字所在的边(实现方式 drawTextOnPath)宽高相等 所以下边会有一点空白 不喜欢可以通过clipChildren 自己去掉 或者用什么布局盖住本demo 宽度为屏幕的3/5 高度等宽。代码package com.power;import...原创 2018-08-16 14:05:22 · 380 阅读 · 0 评论 -
Android 自定义View 实现双击效果
package inter.baisong.widgets;import android.content.Context;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.util.AttributeSet;impo...原创 2018-07-31 18:14:25 · 812 阅读 · 0 评论 -
完美解决ViewPager与各种横向滑动组件(横向RecyclerView,ScrollView等)冲突问题
核心就是判断滑动事件 纵向 父控件控制 横向 自己控制 不给父控件控制权限上代码public class CustomRecyclerView extends RecyclerView { private int mTouchSlop; public CustomRecyclerView(Context context) { super(conte...原创 2018-06-19 18:02:52 · 6932 阅读 · 10 评论 -
Android RecyclerView +SnapHelper 实现横向滚动自动滚动到中心控件并选中
效果图此效果已被产品砍掉,所以有些适配bug就不修改了 此博客只为记录下代码 默哀3秒 1秒 2秒 3秒代码布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"...原创 2018-06-01 17:03:27 · 4802 阅读 · 1 评论 -
Android 图片滑块解锁 and 组件拖动解锁的简单实现
效果图实现方式滑块解锁自定义ImageView 在原图的基础上再画两个 滑块 一个目标位 一个移动位。通过一个对外方法可以更改进度 然后 调用postInvalidate() 实现该效果 大致原理就是这样 下面上代码package project.com.verifyproject;import android.app.Activity;import an...原创 2018-06-08 13:47:08 · 2023 阅读 · 1 评论 -
CoordinatorLayout+AppBarLayout+RecyclerView 滑动冲突引发屏幕抖动的解决方案
前言项目示例图 出现的问题链接:https://ask.csdn.net/questions/363070 跟这个哥们遇到的问题一样一样的;原因用到的布局结构就是CoordinatorLayout+AppBarLayout+ViewPager 然后Viewpager里是两个RecyclerView;当你appbar高度低的时候一般不会触发这个问题,因为appbar f...原创 2018-04-28 16:41:13 · 23087 阅读 · 19 评论 -
Parcelable和Serializable的区别以及如何测试不同代码的效率
Android系统中Parcelable和Serializable的区别进行Android开发的时候,我们都知道不能将对象的引用传给Activities或者Fragments,我们需要将这些对象放到一个Intent或者Bundle里面,然后再传递。通过Android的API,我们知道有两种选择,即在传递对象时,需要对我们的对象进行 Parcelable 或者Serializable转载 2015-11-02 13:58:52 · 672 阅读 · 0 评论 -
Android判断当前网络类型是否为5G
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); int networkType = telephonyManager.getNetworkType(); if(networkType ...原创 2019-09-29 10:10:34 · 8828 阅读 · 4 评论 -
Android Sqlite的使用,纯代码
SQLiteOpenHelper/*** * 作者 : 于德海 * 时间 : 2019/8/27 0027 11:28 * 描述 : */public class SQLiteDbHelper extends SQLiteOpenHelper { public static final String DB_NAME = "cyber_database"; public ...原创 2019-08-27 14:36:53 · 289 阅读 · 0 评论 -
LogService 日志统计打印并上传至服务器
/*** * 作者 : 于德海 * 时间 : 19.5.7 * 描述 : Log工具类 */public class LogService { private static String logPath = "";//日志存放路径 private static String templete="yyyy-MM-dd:HH:mm:ss";//时间格式 pri...原创 2019-06-11 13:57:15 · 1006 阅读 · 0 评论 -
AndroidTV开发是Metro风格首页自带焦点框+Tab切换
背景还是新入职的公司,做tv端应用。这个月就要转正了,开心ing.公司之前的应用都是直接走流化的跟一个走web页面的。入职后给我任务做个新的app,要纯终端的,没办法,只能撸起袖子干了。效果图本来想用as自带的录的 发现盒子上捕获视频效果不理想。手机录完转换gif.也就那样 凑合看吧思路首先 一看就是tab + Fragment再看 页面都差不多 肯定要抽个Base类仔细看 ...原创 2019-06-05 21:02:31 · 926 阅读 · 2 评论 -
Android TV 开发: 让WebView响应手柄的确认返回
判断手柄按键转换成对应的遥控器按键即可 if(event.getKeyCode() == KeyEvent.KEYCODE_BUTTON_A){ event = new KeyEvent(event.getAction(),23); } if(event.getKeyCode() == KeyEvent.KEYCODE_BUTTON_B) event =...原创 2019-04-24 15:49:07 · 892 阅读 · 0 评论 -
Eclipse迁移AndroidStudio于式迁移,成功率99.999999999999999999999%
前言eclipse在Android更新6.0之后被无情抛弃(意味着你用eclipse你的sdk最高只能有6.0的sdk 惊不惊喜,意不意外),首先,感谢这么多年来为android开发者做出的突出贡献。PS:如果你还在用eclipse,我也不能说啥,送你个图?前2言为何我会写这个,还是因为新公司(没错,就是做TV的那个新公司)的项目 All in Eclipse;你们可能感受不了我9.0的...原创 2019-04-18 21:28:48 · 399 阅读 · 0 评论 -
自定义View之产业结构图(坐标图)
需求与结果技术人信仰:没图说个卵子。UI设计图:实现图:思路篇毋庸置疑,肯定要用自定义ViewGroup+View,会有童鞋问:“为啥不直接用自定义View”,不想回答,自行思考。首先 ,我们要先想下配置,看到图的瞬间我们就应该有个大概的思路。大致必须要拥有以下几个类:ChartGroup: 自定义ViewGroup负责控件排版,事件分发。PathView: 自定义Vi...原创 2019-01-09 11:14:02 · 758 阅读 · 0 评论 -
Android RecycerView 中根据图片大小自适应控件大小的实现
问题recyclerView中 item有ImageView,ImageView大小根据图片大小而改变大小解决方案GlideApp.with(mContext) .asBitmap() .load(item.getContent()) .error(...原创 2018-11-15 18:57:33 · 1508 阅读 · 0 评论 -
material-calendarvie 使用记录,以及一些属性的修改。
1.设置选择的背景色mCalendarView.setSelectionColor(Color.parseColor("#dd5050"));2.修改选中背景颜色的大小(这里是减少10dip)DayView中private void calculateBounds(int width, int height) { final int radius = Math.min(heigh...原创 2018-10-26 17:11:22 · 257 阅读 · 0 评论 -
AndroidTV开发知识总结(机顶盒端 )
前言金三银四之际被离职,入职了一家TV开发的公司。入职一月,简单总结下TV开发需要注意的一些东西。知识点适配试用了一下sw 即最小宽度适配(推荐此适配方法)1280*720 对应的分辨率 mdpi具体这方面分析的文章有很多 也很全面,不多哔哔。推荐一个文章:https://blog.csdn.net/hejjunlin/article/details/52886107屏幕方向: ...原创 2019-04-16 16:14:08 · 2318 阅读 · 0 评论 -
Android框架搭建Retrofit2+RxJava+Glide+MVP
github地址:点击跳转到Github原因为了方便以后项目的使用项目中用的都还是比较古老的东西,mvc,volley等,搭建的过程中也学习一下新技术.如何使用And图片下载下来改个包名直接当新项目就可以啦 本来不太需要上传图片 ,但不知道为什么就想传点。 数据来源是showapi 官网地址:ShowAPi搭建过程先介绍下用到的各种第三...原创 2018-03-26 18:26:52 · 1052 阅读 · 0 评论 -
仿苹果进度条(progressDialog)
代码很简单 布局:下载地址 http://download.csdn.net/detail/a940659387/8700527原创 2015-05-15 08:56:36 · 1948 阅读 · 1 评论