第一个月
职业大坑
这个作者很懒,什么都没留下…
展开
-
Selector选择器的使用+各种样式的对话框
一. Selector选择器通过selector选择器,我们可以更快捷的实现底部导航!效果如下:我们如何创建选择器?创建字体颜色改变选择器<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" and...原创 2019-06-05 20:25:03 · 599 阅读 · 0 评论 -
Service的两种启动方式+生命周期+IntentService的特点
Service服务两种启动方式启动方式开启服务:startService()停止服务:stopService()绑定方式绑定服务:bindService()解除绑定:unbindService()生命周期启动方式的生命周期onCreate() —— onStartCommand() —— onDestroy()绑定方式的生命周期onCreate() —— on...原创 2019-08-03 09:53:47 · 1111 阅读 · 0 评论 -
Fragment碎片+ViewPager
Fragment碎片Fragment英文是碎片的意思,早期应用在平板设计中实现Fragment创建Fragment对象定义一个类继承Fragment重写父类的方法onCreateView()为Fragment创建UI并在重写的方法中操作 public class Fragment_item1 extends Fragment { @Nullable @Ov...原创 2019-06-20 11:43:25 · 237 阅读 · 0 评论 -
EventBus和Otto第三方构架
EventBus和Otto第三方框架EventBusEventBus能够简化各组件间的通信,让我们的代码变得简单,能有效的分离事件发送方和接收方EventBus三大要素Event 事件 它可以是任意类型Subscriber 事件订阅者Publisher 事件的发布者EventBus四种线程模型POSTING (默认) 表示事件处理函数的线程跟发布事件的线程在同一个线程。MA...原创 2019-08-03 09:59:48 · 268 阅读 · 0 评论 -
BroadCastReceiver广播
BroadCastReceiver广播广播三要素广播发送者:发送广播广播接收者:接收广播内容:处理广播的信息广播的使用场景同一个APP下多个组件之间传递数据两个APP之间传递数据实现广播广播接受者自定义类继承BroadcastReceiver,重写onReceive方法注册广播 (安卓四大组件都需要注册)静态注册:在清单文件中动态注册:在代码中注册(注册...原创 2019-08-03 09:59:33 · 421 阅读 · 0 评论 -
安卓6.0以后动态获取权限+获取系统的URI和字段+自定义内容提供者
一. 安卓6.0以后获取动态权限查看手机安卓版本安卓6.0以前:只需要清单文件添加权限安卓6.0以后:清单文件添加权限+动态获取(保证手机的安全性)代码如下:// 要添加的所有权限 String[] strings = new String[]{ Manifest.permission.READ_EXTERNAL_STORAGE, Ma...原创 2019-06-17 20:47:39 · 385 阅读 · 0 评论 -
ContentProvider内容提供者
ContentProvider内容提供者ContentProvider内容提供者介绍主要用于在不同的应用程序之间实现数据共享的功能ContentProvider内容提供者是四大组件之一ContentProvider 三个重要的点:ContentProvider:内容提供者ContentResolver:内容解析者URI:地址常用的内容提供者URI获取类型获取URI的...原创 2019-06-14 16:30:10 · 157 阅读 · 0 评论 -
SQLite数据库操作+事务处理
SQLite数据库操作SQLite数据库介绍Android系统中集成的轻量级的数据库特点:轻量级 是以单个文件的形式进行存取跨平台 支持多个操作系统零配置 无需安装, 直接使用嵌入式 内嵌到手机中在程序的内部可以通过数据库的名称访问, 其他应用不能访问.路径: data/data/应用程序包名/database/ 自定义名.db存放的类型:NULL 空值INTEGER 整...原创 2019-06-13 21:53:03 · 2881 阅读 · 0 评论 -
Bitmap三级缓存+二次采样+质量压缩
一. Bitmap三级缓存为什么要用Bitmap三级缓存呢?没有缓存的弊端:费流量,加载速度慢加入缓存的优点:省流量,支持离线浏览原理首先我们需要设置SD卡权限和网络权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permissio...原创 2019-06-12 21:15:16 · 233 阅读 · 0 评论 -
记住密码功能与自动登录功能+SD卡
一. 记住密码功能代码如下:// 如果记住密码是true则将读到的用户名和密码显示在页面上,并将记住密码勾选上 if (ischeck){ String username = sharedPreferences.getString("username", ""); String password = sharedPre...原创 2019-06-12 11:46:13 · 364 阅读 · 0 评论 -
EditText实时监听器+SharedPreferences存储+Shape圆角
一. EditText实时监听器 editText.addTextChangedListener(new TextWatcher() {// 数据改变之前 @Override public void beforeTextChanged(CharSequence s, int start, int count, int after...原创 2019-06-11 16:31:40 · 174 阅读 · 0 评论 -
Notification通知+双击退出操作
Notification通知通知类型特殊方法普通通知进度条通知builder.setProgress(100,50,true);自定义通知builder.setContent(remoteViews);一.普通通知 (效果+代码)代码如下: button1.setOnClickListener(new View.OnClickListener(...原创 2019-06-10 19:23:06 · 206 阅读 · 0 评论 -
PopupWindow弹出窗体
PopupWindow与PopupMenu的区别PopupWindow弹出窗体可以在任意位置弹出窗体,而PopupMenu弹出菜单只能出现在屏幕的最中间PopupWindow的方法显示方法显示位置showAsDropDown(View anchor,int xoff,int yoff)显示在anchor控件的下方showAtLocation(View parent...原创 2019-06-09 18:40:24 · 226 阅读 · 0 评论 -
Menu菜单
Menu菜单菜单类型显示菜单事件监听系统菜单onCreateOptionsMenuonOptionItemSelectd上下文菜单AlertDialog.Builder()setSingleChoiceItems()系统菜单OptionsMenu (效果+具体实现)在res资源文件下创建一个menu文件夹,并创建一个xml文件作为Options...原创 2019-06-06 11:59:52 · 193 阅读 · 0 评论 -
Server跨进程通讯AIDL+Messenger
一. AIDL跨进程通讯AIDLAIDL全称是Android Interface Define Language,即安卓接口定义语言,可以实现安卓设备中进程之间的通信(Inter Process Communication, IPC)服务端 Server将as切换到Project下,按照如图所示创建文件夹命名为aidl,在aidl文件夹下创建aidl文件,命名为IMyAidlInterf...原创 2019-06-26 17:06:32 · 149 阅读 · 0 评论