![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓
文章平均质量分 69
对话~
自学编程的平淡人生!
展开
-
什么是 SurfaceView?
Surface简介Surface就是“表面”的意思,可以简单理解为内存中的一段绘图缓冲区。在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer that is being managed by the screen compositor”,翻译成中文就是“由屏幕显示内容合成器(screen compositor)所管理的原生缓冲器的句柄”, 这句话包括下面两个意思:通过Surface(因为Surface是句柄)就可以获得原生缓冲器以及其中的内原创 2020-12-10 18:09:46 · 7164 阅读 · 1 评论 -
Android中View是如何绘制的
界面窗口的根布局是DecorView,该类继承自FrameLayout,而FrameLayout继承自ViewGroup。感觉绘制肯定会在ViewGroup或者View中但是木有找到。发现ViewGroup实现ViewParent接口,而ViewParent有一个实现类是ViewRootImpl, ViewGruop中会使用ViewRootImpl/** * The top of a view hierarchy, implementing the needed protocol between .原创 2020-12-08 15:45:51 · 188 阅读 · 0 评论 -
数据加密和解密总结
加密incode:对明文(plaintext可读懂的信息)进行翻译,使用不同的算法对明文以代码形式(密码)实施加密转换成密文(ciphertext)。该过程的逆过程称为解密(descode),即将该编码信息转化为明文的过程。对称加密(Symmetric Cryptography)对称加密是最快速、最简单的一种加密方式,加密(encryption与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。对称加密有很多种算法,由于它效率很高,所以被.原创 2020-11-30 17:52:44 · 1404 阅读 · 0 评论 -
Java动态代理是什么?
动态代理的类和接口Proxy:动态代理机制的主类,提供一组静态方法为一组接口动态的生成对象和代理类。// 方法 1: 该方法用于获取指定代理对象所关联的调用处理器public static InvocationHandler getInvocationHandler(Object proxy) // 方法 2:该方法用于获取关联于指定类装载器和一组接口的动态代理类的类对象public static Class<?> getProxyClass(ClassLoader loader原创 2020-11-28 17:08:41 · 309 阅读 · 0 评论 -
HashMap原理分析和具体实现
HashMap实现原理分析HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null建和null值,因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不能相同。原理其底层数据结构是数组称之为哈希桶,每个桶(bucket)里面放的是链表,链表中的每个节点,就是哈希表中的每个元素。通过hash的方法,通过put和get存储和获取对象。存储对象时,我们将K / V传给put方法时,它调用hashCode计算ha原创 2020-11-28 17:02:08 · 157 阅读 · 0 评论 -
Java实现八种排序算法详解
插入排序基本思想:在要排序的一组数中,假设前面(n-1)[n>=2]个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。总体分析:用第二个数和第一个数比较大小,大的放到右边。用第三个数分别和第二个数还有第一个数比较,并把大的放到右边。用第四个数分别和第一个第三个第二个第一个数比较,并把大的放到右边。…所以这里肯定要用到嵌套for循环。 public void insertSort(int[] arr) {原创 2020-11-27 11:01:02 · 654 阅读 · 0 评论 -
偶遇 android.content.res.Resources$NotFoundException: BUG可让我一顿好找。特此记录!
今天偶遇 android.content.res.Resources$NotFoundException: BUG可让我一顿好找。特此记录!场景还原:在RecyclerView Adapter中获取布局崩溃 ,起初查网上说的是1. R文件的问题,有的说删除当我删除后依旧不行。。。。。。2.inflate 文件的时候 R.Layout.****, 写成了R.id.***** 这种很显然不是。。。3.文本渲染的时候 tv.setTest(),传了 int 类型 还没有执行文本渲.原创 2020-05-14 18:35:59 · 9152 阅读 · 1 评论 -
Android使用RecyclerView+BaseQuickAdapter处理item中包含RadioButton的单选实现
先上代码beanpublic class ListBean { private String name; boolean check=false;//是否选中 public ListBean(String name) { this.name = name; } public boolean isCheck() { return check; } public void setCheck(boolean c原创 2020-05-09 17:26:33 · 10063 阅读 · 0 评论 -
5分钟学会使用 Protobuf
什么是 Protobuf ?谷歌推出的一种序列化协议 ,是一种语言无关、平台无关、可扩展的序列化结构数据的方法什么是序列化?把对象转换为字节序列的过程称为对象的序列化为什么要把对象转换为字节序列?以便存储在文件中或在网络上传输。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。进入正题Protobuf优...原创 2019-12-25 17:42:25 · 9051 阅读 · 0 评论 -
冒泡排序细究java
说起排序大家最熟悉的莫过于冒泡排序了今天就和大家细究一下冒泡排序首先看看基础版冒泡排序的实现代码public static void sort(int array[]){ //外层循环控制排序的次数 for (int i = 0; i < array.length; i++) { //内层循环控制每一次排序的冒泡处理 ...原创 2019-11-27 17:36:40 · 8888 阅读 · 0 评论 -
高仿支付界面实现
效果实现步骤绘制支付界面布局传递支付界面事件核心代码创建自定义布局 继承 RelativeLayout绘制界面 //view布局 View view = View.inflate(context, R.layout.layout_popup_bottom, null); valueList = new ArrayList<Map<String, Strin...原创 2019-11-08 23:53:30 · 10206 阅读 · 0 评论 -
实现3D层叠式卡片图片展示
先看效果好了效果看了,感兴趣的往下看哦!整体实现思路重写RelativeLayout 实现 锁定宽高比例的 RelativeLayout自定义一个支持滑动的面板 继承 ViewGroup卡片View绘制页面中使用布局首先为了更好的展示图片我们重写一下 RelativeLayout 编写一个锁定宽高比例的 RelativeLayoutAutoScaleRel...原创 2019-10-29 13:36:05 · 10325 阅读 · 0 评论 -
自定义View画直线、圆环数据变动View
大苏打原创 2019-10-20 15:49:17 · 9217 阅读 · 1 评论 -
代码实现WIFI自动连接与连接指定WIFI源码
最近家里老人总是问我如何连接WIFI,和他们电话讲又讲不清楚,于是我想到了写一个,打开自动连接指定WIFI的软件。练练手。废话不多说,首先布局,简单!两个文本框一个按钮<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk...原创 2018-12-29 11:24:50 · 17969 阅读 · 4 评论 -
Stacked Bar设置顶部百分比方法
今天做项目时,发现一个问题,如何使BarChart的顶部显示自定义的百分比,找了一下方法发现没有,于是自己写了一个方法 1.首先我们新建一个类实现IValueFormatter接口,重写方法,并添加相应的方法,详情看代码注释 public class Zidingyi_Bar implements IValueFormatter { private boolea...原创 2019-01-08 16:52:19 · 11382 阅读 · 0 评论 -
Android WebView 与Js交互,混合开发基础
混合开发是流行的趋势,混合开发优点支持设备广泛; 较低的开发成本; 可即时上线; 无内容限制; 用户能够直接使用最新版本号(自己主动更新,不需用户手动更新)。好了,现在我们开始学习Android混合开发的基础,WebView如何与JS交互首先我们看下整体的文件结构 适合新手好理解首先我们介绍 MyWebChromeClient 继承WebChromeCli...原创 2019-09-08 18:48:04 · 9151 阅读 · 0 评论 -
简单好用的SlidingDrawer实现抽屉式的公告
SlidingDrawer简单使用和其他的控件不同之处比较特别的属性android:content="@+id/myText" //这个属性表示拉开抽屉后展示的内容android:handle="@+id/layout1" //这个属性表示抽屉的把手android:orientation=“horizontal” //设置抽屉为横向<?xml...原创 2019-09-19 17:06:41 · 8975 阅读 · 0 评论 -
动画对话框实现
炫酷的动画对话框关键技术AlertDialog的自定义代码 //创建对话框实例 dlg = new AlertDialog.Builder(this).create(); dlg.show(); //显示对话框 Window window = dlg.getW...原创 2019-09-20 10:01:53 · 9218 阅读 · 0 评论 -
炫酷旋转菜单
旋转动画实现关键代码//枚举类 菜单状态 public enum Status { OPEN, CLOSE }/*** 单击子菜单的回调接口*/ public interface OnSatelliteMenuItemClickListener { void onClick(View view, in...原创 2019-09-20 11:33:38 · 9583 阅读 · 0 评论 -
Android事件分发 分析
Android事件分发 分析什么是事件的 分发用户通过屏幕与手机交互的时候,每一次点击、长按、移动等都是一个事件。事件分发机制:某一个事件从屏幕传递各个View,由View来使用这一事件(消费是事件)或者忽略这一事件(不消费事件),这整个过程的控制。事件分发的对象是谁系统把事件封装为MotionEvent对象,事件分发的过程就是MotionEvent分发的过程。...原创 2019-09-24 10:51:29 · 9164 阅读 · 0 评论 -
MPAndroidChart总结
第一天 LineChart的常用属性 lineChart.setDrawBorders(false);//设置绘制边界lineChart.setDescription("最大值是: "+ max+",最小值是:"+min);// 数据描述lineChart.setDescriptionTextSize(16f);//数据描述字体大小, 最小值6f, 最大值16f.line...原创 2019-09-08 16:00:01 · 9452 阅读 · 0 评论