Android开发( 右侧选择分类 )
tinuv

Android自定义组合控件基础

自定义组合控件我以前没有用过,对我来说是一个新的领域,由于今天的时间很少了,没有很只学了一点点,但也记录下来,作为一个开头.实现一个最简单的组合控件实现组合控件很关键的一点是动态加载布局,就是使用LayoutInflater来动态加载布局,加载完了之后基本上一个最简单的组合控件就算完了.组合控件在统一界面风格方面的作用很大,尤其是重用的时候,可以减少很多代码冗余,因为在组合控件可以处理一些公共的逻
1961 人浏览
android00

Android 实战-版本更新(okhttp3、service、notification)

前言整理功能,把这块拿出来单独做个demo,好和大家分享交流一下。版本更新这个功能一般 app 都有实现,而用户获取新版本一般来源有两种:一种是各种应用市场的新版本提醒一种是打开app时拉取版本信息(还要一种推送形式,热修复或打补丁包时用得多点)这两区别就在于,市场的不能强制更新、不够及时、粘度低、单调。摘要下面介绍这个章节,你将会学习或复习到一些技术:- dialog 实现 key 的重写,在弹
1957 人浏览
cnbzlj

android sharedpreferences工具类

今天,简单讲讲如何写一个sharedpreferences的工具类。很简单,把一些重复的操作封装在工具类里,其他地方调用就可以。在网上搜索了比较多的资料,找到一个比较好的工具类。import android.content.Context; import android.content.SharedPreferences; /** * 作者:Yzp on 2017-03-20 15:
1952 人浏览
kotlin

基本数据类型

在 Kotlin 中,所有东西都是对象,在这个意义上讲我们可以在任何变量上调用成员函数和属性。 一些类型可以有特殊的内部表示——例如,数字、字符和布尔值可以在运行时表示为原生类型值,但是对于用户来说,它们看起来就像普通的类。 在本节中,我们会描述 Kotlin 中使用的基本类型:数字、字符、布尔值、数组与字符串。一、数字Kotlin 处理数字在某种程度上接近 Java,但是并不完全相同。例如,对于
1947 人浏览
android01

Android源码解析(十五)-- Activity销毁流程

继续我们的源码解析,上一篇文章我们介绍了Activity的启动流程,一个典型的场景就是Activity a 启动了一个Activity b,他们的生命周期回调方法是:onPause(a) --> onCreate(b) --> onStart(b) --> onResume(b) --> onStop(a)而我们根据源码也验证了这样的生命周期调用序列,那么Activity的
1941 人浏览
cnbzlj

android removeRule的使用

今天,简单讲讲android里如何使用removeRule去动态改变布局。最近在修改代码时,发现横竖屏切换时需要动态的设置控件的RelativeLayout.LayoutParams,之前自己是每次切换就new一个RelativeLayout.LayoutParams,但是这样在效率上比较低。所以自己想优化时直接获取控件的RelativeLayout.LayoutParams然后动态的改变属性,这
1936 人浏览
cnbzlj

android 解决password过时

今天,简单讲讲如何解决android:password 过时的问题。这个其实很简单,之前自己讲过很多过时的代码,这个android:password 过时也经常遇到,只是一直没有花时间写成博客。今天正好记录一下。android:password="true"编写Android时,这句代码会报错,“android:password is deprecated: Use inputType inste
1929 人浏览
android00

一篇文章带你看遍Google I/O 2019大会

为期三天的Google I/O 2019大会终于在上周落下了帷幕,每年的Google I/O大会都可以说是一场全球的开发者盛宴。不过可惜的是,由于和美国存在时差,I/O大会的直播时间正好是我们这边的深夜,因此对于大多数的人来说可能都只能通过回放的方式来观看I/O大会。另外由于会议全程都是使用的英文,因此对于一些英文不太好的朋友观看起来可能也会比较吃力。因此今天我特意写了这样一篇文章来覆盖Googl
1925 人浏览
cnbzlj

Android 7.0 文件读取适配,适配相机及裁剪图片

Android 7.0 打开文件的错误,调用相机及裁剪图片,还有动态权限Github代码码云链接华为荣耀V8,小米5,小米6,R9s,测试通过,其他机子没机会测试。。。。核心代码7.0以上除了相机和裁剪图片,只要是打开文件的,uri都要更改,包括更新安装包,记得要改uri,不然解析异常,但裁剪图片outputUri有点不一样if (Build.VERSION.SDK_INT >= Build
1924 人浏览
android00

Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)

1、首先说一下canvas类:Class OverviewThe Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bit
1909 人浏览
android01

Android源码解析(十六)-- Android应用进程Context创建流程

今天讲讲应用进程Context的创建流程,相信大家平时在开发过程中经常会遇到对Context对象的使用,Application是Context,Activity是Context,Service也是Context,所以有一个经典的问题是一个App中一共有多少个Context?这个问题的答案是Application + N个Activity + N个Service。最后我们得出结论,应用进程的起始方法
1908 人浏览
tinuv

反射学习(二)

对成员的访问访问字段通过反射获取到的字段使用Field类表示,Field类提供了一系列的方法来访问基础数据类型,如getInt(),getBoolean()Fieldfield=testClass.getField("intData"); inta=field.getInt(test);field.setInt(test,5);通过setInt()还可以修改一个对象的值,要注
1899 人浏览
cnbzlj

Android edittext限制字节数

不废话,需求:要求输入框输入字符数小于9,怎么做?不是et.getText().toString().length()<9.而是et.getText().toString().getBytes(Charset.defaultCharset()).length <= 9.根据输入字符串或者显示字符串的字节长度和字符串长度判断,因为汉字在android中一个字符占3个字节,EditText
1882 人浏览
android00

Android Studio配置正式签名和debug签名

需求:如果应用中牵扯到第三方平台集成的话,调试是非常讨厌的一件事,因为很多第三方要求正式签名后生成的包才可以正常使用。所以,在debug模式下配置正式签名包,就可以解决问题。在主工程(一般都是app)下的build.gradle里,配置2个签名:signingConfigs{ release{ keyAlias'###' keyPassword'******'
1881 人浏览
cnbzlj

android 解决Error:This Gradle plugin requires Studio minimum

今天,继续简单讲讲如何解决Error:This Gradle plugin requires Studio 3.0 minimum。之前讲过这个问题,有点不全面,所以再记录一下。原因:项目用的是3.0的版本自己电脑装的是2.2.2版本的,导入项目Gradle报错解决办法:方案一:build.gradle中改为'com.android.tools.build:gradle:2.3.3'方案二:gra
1880 人浏览
android

android OKHttp的基本使用详解

简单说一下学习okhttp的理由google在Android 6.0中删除了HttpClient的Api,采用的是则是okhttp高效的使用HTTP,使应用运行更快更省流量响应缓存数据避免重复网络请求无缝的支持GZIP来减少数据流量使用非常简单,请求和响应的Api具有流畅的建造和不变性,同时支持同步异步调用回调函数如果网络出现问题,它会从常见的连接问题中恢复如果服务器配置有多个IP地址,当第一个I
1875 人浏览
bbsmax

HDFS 读写流程-英

HDFS 文件读取流程The client opens the file it wishes to read by calling open() on the FileSystem object, which for HDFS is an instance of DistributedFileSystem (step 1 in Figure 3-2).DistributedFileSystem c
1850 人浏览
bbsmax

深度递归必须知道的尾调用(Lambda)

引导语本文从一个递归栈溢出说起,像大家介绍一下如何使用尾调用解决这个问题,以及尾调用的原理,最后还提供一个解决方案的工具类,大家可以在工作中放心用起来。递归-发现栈溢出现在我们有个需求,需要计算任意值阶乘的结果,阶乘我们用 n!表示,它的计算公式是:n! = 123……(n-1)n,比如说 3 的阶乘就是 123。对于这个问题,我们首先想到的应该就是递归,我们立马写了一个简单的递归代码://阶乘计
1838 人浏览
cnbzlj

Android 通过腾讯WebService API获取 地址经纬度

不废话,需求:必须调用腾讯地图的API将地址转经纬度,怎么办? 1、申请地图使用Key(必须) 访问腾讯地图服务 : http://lbs.qq.com/qqmap_wx_jssdk/index.html;申请自己的Key; 记得开启webServiceAPI,不要输入任何限制条件。 请求URL 该请求为GET请求 https://apis.map.qq.com/ws/geoc
1826 人浏览
android

android 解决Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Android

今天,简单讲讲android studio导入工程时,出现报错Error:This Gradle plugin requires a newer IDE able to request IDE model level 3. For Andro。这个问题其实是由于android studio是2.x版本,而导入的工程是使用android studio 3.0创建的,所以会出问题。在网上找了解决的办法
1823 人浏览