builder模式创建自定义popwindow builder设计模式 将一个复杂的对象构建与它的表示分离,简化代码的使用方式.当对象有多个参数或多个零件同时初始化方法同时初始化方法有默认值时,采用此模式比较方便. 主要结构 basepopwindow 产品类 builder 产品类具体的构造类 basepopwindow的子类 BasePopController 产品类控制类 PopupParams 产品类参数类 basepopcontroller 的子类 代码实现 public class…
layout_weight属性 layout_weight属性我们常常用到,但有时候会发现它还有一些奇怪的属性,比如大多数使用时会把宽度设置成0,但要是宽度不设置成0会有什么效果? layout_weight的属性意义为权重大于零的控件会分配剩余控件 意义为如控件属性设置为wrap_content时,如一个控件内容为"123",另外一个为"123456",两者同时设置相同的权重,后者大小会比前者大,是由于先分配内容空间,后为两控件设置剩余空间. 当layout_wi…
Android 中的webview android 中的webview是可以在app内部打开HTML等的网页,不必再打开浏览器,有两种实现方法,即webviewclient webChromeclient 两种方法,如果仅仅是简单的点击和静态界面,直接使用第一种. 注意事项 一,开启网络权限,可能一项没有设置到最后的结果就是加载不出来,所以我们需要再manifist文件中设置权限 <uses-permission android:name="android.permission.INTER…
SharePreference SharePreference是一种持久化存储手段,使用场景很多,如第一次打开时加载的用户协议等.适合小数据单进程的应用.将数据以键值对的形式存储在XML中. 使用方式,edit接口,同时又commit和apply方法,推荐使用后一种,后一种为异步,前者为同步,对于单进程应用来说,数据更新不必太及时,只要确保数据的正确性,因为Android中sharedpreference是可以被多个进程读取,同时读取可能会导致数据出现问题. AIDL AIDL Android…
selector 是安卓资源文件的一种,它可以使按钮等实现不同状态下的不同UI,不用在代码中实现,而使用方式有两种,一种在color文件下 创建.xml可以使按钮等字体在不同状态下的变化,其二是在drawable中创建资源文件,可以设置背景等,下面的<shape标签可以绘制不同种图形,<gradient还可以实现渐变色的效果. 如何使一个textview显示两种不同字体的布局 对于新手来说可以使用多个textview拼接的方法,但此方法繁琐,一个textview实现有两种方法, 一是通过And…
Android设备调试桥 即adb 使用adb进行无线调试的一些常用命令 adb tcpip 5555 设置调试端口为5555 防止冲突 adb shell ifconfig wlan0 查询局域网中的移动设备局域网IP地址 adb connect 192.168.0.100 使移动设备和Android studio连接 adb devices 查询连接的设备 adb disconnect ip 断开连接 2. 使用插件 AndroidWifiADB 进行无线调试 注意的点 每次连接时都还要连接…
kotlin-android-extensions 插件被废弃 笔者曾经尝试写过一部分的kotlin代码 主要是项目中一些代码是kotlin完成的,其中我认为 kotlin的kotlin-android-extensions 插件非常方便,甚至超过了需要插件的butterknife,但谷歌在最近AS4.1后宣布放弃使用kotlin-android-extensions插件,似乎是由于recyclerview的viewholder的原因.再加上butterknife作者似乎也不再更新,所以掌握vi…
TBS 的接入和使用 TBS 的接入 腾讯TBS是X5内核的升级版,可以当作webview 来打开 网页,可以以用来打开docx doc pdf 等文件,这里主要使用的是文件功能. 依赖接入 api 'com.tencent.tbs.tbssdk:sdk:43939' 这是笔者2021/2/25编辑时最新版本,最新可在官网查询. 如果依赖文件下载有问题可手动下载jia包,本地依赖包可放在 app/libs 下,文件夹可自行创建,同时在 app/src/main/jniLibs/armeabi 下…
downloadmanager时Android系统下载器,使用系统下载器可以避免用stream流读入内存可能导致的内存溢出问题.以下为downloadmanager初始化部分.apkurl为下载网络路径.Environment.DIRECTORY_DOWNLOADS 为系统的下载路径.即下载至外部存储. mDownloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); String apkUrl = "https:/…
BindView ButterKnife 优势 绑定组件方便,使用简单 处理点击事件方便,如adapter中的viewholder 同时父组件绑定后子组件无需绑定 注意 在setcontentview之后使用,且子空间不可再使用static final属性 在不改变按钮图片大小的情况,扩大点击事件, 在较低Android版本此方法可能有问题,即src和setbackground的区别,同样可以设置背景图片,但src仅将图片资源加载,不做其他处理,而setbackground会使图片自适应与按钮大…