为了账号安全,请及时绑定邮箱和手机立即绑定

Android 全面屏黑边适配

问题:全面屏底部会出现黑边原因:全面屏宽高比例比较特殊,不是之前的16:9。例如小米mix2s,屏幕宽高比是18:9。Android默认支持的最大宽高比例是1.86,小于全面屏手机的宽高比例。所有如果全面屏手机上的应用没有做适配,底部就会出现黑边。解决方案:方案1:设置resizeableActivity属性值<application          ......

6799浏览
0推荐
0评论

Java多线程20 Worker Thread模式

1.Worker Thread模式Worker的意思是工作的人,在Worker Thread模式中,工人线程Worker thread会逐个取回工作并进行处理,当所有工作全部完成后,工人线程会等待新的工作到来。Worker Thread模式也被成为Background Thread(背景线程)模式,另外,如果从保存多个工人线程的场所这一点看,我们也可以称这种模式为Thread Pool模式。2.Worker...

1262浏览
0推荐
0评论

Android Camera2 教程 · 第四章 · 拍照

Android Camera上一章《Camera2 预览》我们学习了如何配置预览,接下来我们来学习如何拍照。阅读完本章,你将会学到以下几个知识点:理解 Capture 工作流程如何拍摄单张照片如何连续拍摄多张照片如何连拍照片如何配置缩略图尺寸如何播放快门音效如何矫正图片方向如何切换前后置摄像头你可以在 https://github.com/darylgo/Camera2Sample 下载相关的源码,并且切换到 Tutorial4 标签下。1 理解 Capture 工作流程在正式介绍如何拍照之前,我们有必要深入理解几种不同模式的 Capture...

2651浏览
0推荐
0评论

Okhttp源码分析

版本号:3.13.1一.基本使用//1.创建OkHttpClient对象val okHttpClient = OkHttpClient.Builder().readTimeout(5,TimeUnit.SECONDS).build()//2.创建Request对象val request = Request.Builder().url("www.baidu.com").build()//3.通过OkHttpClient将Request封装成Call对象val call = okHttpClient.newCall(req...

2111浏览
0推荐
0评论

MediaCodec 编码后的数据使用 FFmpeg 进行封装

由于使用 MediaMuxer 进行文件封装不支持边转码边分块,所以选择通过使用 FFmpeg muxer 进行文件封装,  在封装过程中完成文件的分块。FFmpeg 音视频复用器(Muxer)音视频封装 - 将视频压缩数据(例如H.264)和音频压缩数据(例如AAC)合并到一个封装格式数据(例如MP4)中去。如图所示:音视频复用.png参考雷霄华的博客,整理出 FFmpeg 封装音视频的流程:FFmpeg muxer流程.png创建 AVFormatContext 结构体调用 avformat_alloc_output_context2() 方法初始化 AVFormatContext...

2268浏览
0推荐
0评论

大型比特币交易所对洗白交易睁一只眼闭一只眼

根据风险投资和科技公司CoVenture的一份报告,一些令人不安的大型比特币交易所至少间接地进行了某种形式的交易量操纵。报告主要涉及“洗盘交易”,他们将其定义为:当交易者在不改变标的资产所有权的情况下,以相同的价格发出买入和卖出指令。他们使用机器人自动化这些订单导致人为增加数量。这给了毫无戒心的交易员流动性的错觉。在比特币交易中,交易量为王CoVenture引用了CCN之前关于Bithumb的一个案例研究。韩国比特币交易所“Giant”被发现在几个月的时间里伪造了大约95%的日交易量。交易量变成这些交易所指标之王。人们认为交易量最大的交易所具有最大的流动性。但这样做的结果呢?这份报告描绘了一幅加密行业的惨淡图景。伪造交易量不仅...

1156浏览
0推荐
0评论

发现 关注 消息 5 搜索 Android Jatpack基础学习2

上一篇文章写了Jatpack工程的基础搭建,这篇继续写使用。dataBinding使用,ViewModel的使用。1.ViewModel增加一个start变量,用于后面通知fragment跳转。class MainViewModel : ViewModel() {     ...     var start = MutableLiveData<Boolean>().apply { value = false }...

784浏览
0推荐
0评论

如何将多个选择添加到Android RecyclerView

该RecyclerView 小部件是当今大多数Android应用程序不可或缺的一部分。自从2014年末它被添加到Android支持库以来,它已经将ListView 小部件作为显示大型复杂列表的首选小部件而黯然失色。但是,缺少一个重要的功能:支持选择和跟踪列表项。RecyclerView Selection是谷歌今年3月发布的一个插件库,试图解决这个问题。在本教程中,我将向您展示如何使用新库创建一个应用程序,该应用程序提供了一个直观的界面,用于选择列表中的多个项目。按照此Android RecyclerView多选示例,您将学习一些可以在自己的应用中应用的技能。先决条件要跟进,您需要:最新版本的Android...

1161浏览
0推荐
0评论

Android架构组件简介

好吧,迟到总比没有好。在最后的Google I / O中,Android团队最终决定解决这个问题并回应来自世界各地的开发人员的反馈,宣布正式推荐Android应用程序架构并提供实现它的构建块:新架构组件。更好的是,他们设法做到了这一点,同时又没有损害我们都知道和喜爱的系统的开放性。架构组件在本教程中,我们将探讨由Android团队在谷歌I / O提出的标准化体系结构,并期待在新的体系结构组件的主要元素:...

2743浏览
0推荐
0评论

EOS 全球行南京站:降低用户及开发者门槛将是 2019 EOS 关键词

EOS 全球行3月3日,由去中心化交易所 WhaleEx 发起并主办的 EOS 全球行 2019 年第一站在南京举办,Fibos、白话区块链、BCCN南京区块链社群联盟联合主办,100余位EOS关注者参与本次活动。活动现场,Fibos、MYKEY、柚子铺、WhaleEx鲸交所、EOS...

1162浏览
0推荐
0评论

Android触摸事件全过程分析:由产生到Activity.dispatchTouchEvent()

本文会分析触摸事件的产生 -> Activity.dispatchTouchEvent()整个过程。希望对于触摸事件的产生和系统处理过程有一个简单了解即可。触摸事件的产生 :...

4597浏览
1推荐
0评论

张绍文android开发高手课读书笔记4-启动优化篇

启动优化篇在说如何对启动时间进行优化之前,我们得先知道从用户点击应用图标开始,一共经历了那些阶段。主要阶段如下图.imageT0~T1阶段这个阶段是手机系统解析点击事件,效应快慢跟手机性能有关T1~T2阶段系统在正式启动应用之前,会根据应用设置的Theme设置一个预览界面.应用启动白屏也是发生在这里,如果你没有设置对应的Theme,并且Activity的onCreate函数执行所需要的时间过长,就会出现白屏的情况.比较可行的解决方式是给启动页的Theme设置一张背景图。如下 <activity...

1571浏览
0推荐
0评论

EditText选择模式的一些问题

过年这段时间正好比较有空,而且有一个客服相关的需求,借这个机会把一年前写的支持输入表情和@mention的EditText又重构了一遍,具体见SpEditTool,重构过程中对EditText选择模式又有了一些新的认识,在这里记录下选择模式的光标场景描述在实现响应软键盘光标移动事件之前已经实现了让光标不进入@mention字符串的逻辑(离start位置近就重置回start位置,离end位置近就重置回end位置),但是在光标只移动一格的情况下会回退到之前的光标位置,光标永远无法跨过一个@mention字符串。所以对于软键盘的光标移动时经过@mention需要特殊处理当selectionStart=selectionEnd时这种情...

1097浏览
0推荐
0评论

OpenGL 彩色三角形

这里有三个步骤1.定义顶点着色器2.定义片段着色器3.定义顶点和颜色数组,设置数组指针顶点着色器#version 300 eslayout (location = 0) in vec3 aPos; layout (location = 1) in vec3 aColor;out vec3 ourColor;void main() {...

1465浏览
0推荐
0评论

Android-自定义Router(路由)

我们知道Android的组件化离不开Router,路由的主要主要作用是:消息的中转站,为我们的项目多模块的依赖解耦。,当然市面上有三方路由框架,比如阿里的ARouter就是一个不错的选择,但我们还是要自己自定义一个Router,来研究一下,毕竟自己动手丰衣足食嘛,ok,我们进入正题。项目分析这是我demo的项目结构:image.png当然凡是用到路由的项目,其依赖关系一定复杂,但我们这里只是为了讲解路由的实现,所以就项目的耦合度并不高。主要是app,fifferentprocess,sameprocessmodule这三个模块的依赖,通过自定义router实现解耦,common模块就是依赖模块常用的一些静态变量统一存放,便于管...

1127浏览
0推荐
0评论

高德,百度,Google地图定位偏移以及坐标系转换

注明一点,百度定位采用火星坐标系。/**  * GPS、谷歌、百度、高德坐标相互转换工具类  */public class GPSConvertUtils {...

2305浏览
0推荐
0评论

区块链的挖矿奖励减半之后,BCH和BTC谁更能吸引矿工呢

图片发自简书App自比特币诞生以来,矿工就一直是比特币生态中最重要的一环,历史上第一个矿工就是比特币设计师中本聪。矿工投入算力打包区块、处理交易信息,不仅完善了区块链生态的完整功能性,强大的算力更是形成了比特币的护城河,抵御算力攻击。如果没有算力来保护区块链平稳运行,可以说比特币的框架体系早就已经被击垮,例如BTG,因算力过少被成功51%算力攻击,在这之后BTG基本处于停盘的状态。所以说比特币能够平稳运行10年,矿工们功不可没。所以,在POW机制下的币种们,都希望能够吸引足够多的算力来保护区块平稳运行。矿工们喜欢区块拥堵吗?矿工的收益来源是手续费+区块奖励,在比特币早期交易量极度匮乏的时期,也是比特币最高区块奖励的时期,早期的...

2032浏览
0推荐
0评论

从源码角度深入理解Glide(中)

glide_logo.png上两一篇文章从源码角度深入理解Glide(上)中,我们了解了Glide框架中的一些用法,并且分析了Glide的with方法和load方法,由于简书限制字数篇幅原因into方法留到本篇文章分析,废话不多说,接下来马上开始分析。into方法通过上一小节的分析,经过load方法之后获取的对象是RequestBuilder,并且我们将load方法的参数赋值给了RequestBuilder对象的model参数,接下来就到了Glide最核心的方法,也就是RequestBuilder对象的into方法获取DrawableImageViewTarget/** RequestBuilder 类的i...

1256浏览
0推荐
0评论

从源码角度深入理解Glide(下)

Glide缓存Glide加载默认情况下可以分为三级缓存,哪三级呢?他们分别是内存、磁盘和网络。默认情况下,Glide 会在开始一个新的图片请求之前检查以下多级的缓存:1.活动资源 (Active Resources) - 现在是否有另一个 View 正在展示这张图片2.内存缓存 (Memory cache) - 该图片是否最近被加载过并仍存在于内存中3.资源类型(Resource) - 该图片是否之前曾被解码、转换并写入过磁盘缓存4.数据来源 (Data) -...

2000浏览
0推荐
0评论

Android 玩转PathMeasure之自定义支付结果动画

概述最近在研究Android的路径动画,恕我直言,PathMeasure是个神器,可以帮助我们绘制任意的路径,只要你能draw出来的Path,它都能绘制出来,你可能会问,既然drawPath都可以了,要它何用?...

1458浏览
0推荐
0评论
首页上一页1234567下一页尾页
意见反馈 帮助中心 APP下载
官方微信