
android基础
文章平均质量分 66
安卓基础
陆康永
是时候开始明确自己写博客是为了什么,以前搞不懂,感觉挺浪费时间的,而且自己的水平写出了的博客可参考价值也不大,权当给以后的自己一个了解过去自己的机会,避免继续踩坑。
展开
-
Android 链式调用组件(以标题栏为例)
恭喜自己的 android注解上2022/11/07的推荐浏览器ctrl+f 搜索 艾特猫 就可以看到我的被推荐笔记话说n年轻,jquery大行其道的时候,下面这样的代码写得莫名其妙的酸爽。没搞懂为什么可以这样连着调用,但是就是爽。然后vue来了,react也来了,,在给前端提供更多操作空间后,同时也增加了很多难度。开始怀念以前函数式调用(不是怀念操作dom,键盘大佬勿喷)。例如的弹窗可以直接调用个函数就可以实现,同时可以通过不同的参数来定制不同的效果。原创 2022-11-07 23:49:47 · 1331 阅读 · 0 评论 -
DecorView和android.R.id.content的关系
getDecorView:这个方法是获取顶级视图,DecorView为整个Window界面的最顶层View, 里面是包含了我们的android.R.id.content的,而且也是个帧布局哦。本来我还想贴下android源码的,无奈AppCompatActivity的源码已经不像17年时候那个版本的那么简洁了,为了兼容加了好多我看不懂的东西。R.id.view_group这个是acitivty xml布局里面最外层的标签。android.R.id.content是个帧布局,能够直接往我们的。原创 2022-11-07 10:08:50 · 1247 阅读 · 0 评论 -
Android 注解 (对应typescript装饰器)
用注解的主要原因是减少代码入侵。注解的定义方式和新建java class一样,不过需要吧“class”改成“@interface”一个完整的注解声明如下METHOD声明了这个后在方法,属性,构造函数上面编辑器上写注解时候,如果有声明就有对应的提示。原创 2022-11-04 11:19:40 · 763 阅读 · 0 评论 -
android全局捕获异常错误
Override//初始化异常捕获自定义类}}在AndroidMianifest.xml里面修改application表情的name为自定义application的类名字携带异常信息,跳转到新的acitivity(并在新的activity里面发起ajax收集错误信息,并引导用户回到首页),停止当前activity发起ajax请求,后闪退/*** 单例的设计模式的异常捕捉*///用来解决多线程并发问题}}}//把全局的异常捕获设置为当前类。原创 2022-11-03 11:32:06 · 1293 阅读 · 0 评论 -
android 隐藏底部虚拟按键
如果activity的layout xml根标签设置了以下代码,需要移除,否者内容底部还是会存在预留个底部虚拟按键的padding。隐藏状态栏(让状态栏直接消失,不占位)转载 2022-10-15 11:50:24 · 2127 阅读 · 1 评论 -
android解决底部导航栏遮挡问题,Android虚拟导航栏遮挡底部的输入框的解决方法
控件的绘制区域是否在padding里面,值为true时那么绘制的区域就不包括padding区域,默认滚动是在padding(区域)下进行的.然而如果你设置了此属性值为false,就能实现一些意想不到的效果.最近忙着app的适配,在这个过程问题中,各种机型的奇葩问题都出来了,适配真尼玛痛苦!如果为true,将调整系统窗口布局以适应你自定义的布局。原创 2022-10-15 11:36:09 · 2038 阅读 · 0 评论 -
activity和service通讯 binder
这个代码并没有什么特殊的地方,只是某种程度和android activity获取service内部的值类似。原创 2022-10-11 00:05:20 · 1257 阅读 · 1 评论 -
android属性动画和帧动画
所谓属性动画,就是改变对象Object的属性来实现动画过程。属性动画是对View的动画的扩展,通过它可以实现更多漂亮的动画效果。同时属性动画的作用对象不仅仅是View,都可以。:在一个指定的时间段内将对象的一个属性的属性值动态地变化到另一个属性值。原创 2022-10-09 18:30:25 · 993 阅读 · 0 评论 -
android视图动画(ViewAnimation动画)
通过xml文件资源定义好,然后用工具函数加载,并给对应的view设置该动画,调用startAnimation方法开启动画效果androidStudio新建xml动画资源。原创 2022-10-09 10:54:07 · 3044 阅读 · 0 评论 -
从vue的角度看android Fragment
但是Acitivity不能,android 里面fragment和Acitivity是严格区分的,是用不同的类实现的,生命周期也不大一样。FragmentManager是 androidx.fragment.app(已弃用的不考虑)下的抽象类,创建用于 添加,移除,替换 fragment 的事务(transaction)Activy消费该Fragment的时候,用vue的说法就是挂载该组件,Activy内部维护给变量来存储管理fragment的对象。1⃣️对于的xml代码如下。不过,这里先记录下如何。原创 2022-09-29 22:26:56 · 680 阅读 · 0 评论 -
从html radio到android RadioButton
Html代码如下,通过同样的name来划分为同一组radio,value就是各自组建所代表的值如果不用radio呢?用div模拟呢?那会多好多个步骤html代码。原创 2022-09-30 15:15:49 · 823 阅读 · 0 评论 -
Android xml布局设置默认隐藏&&通讯
public void getResult(String result) { /*打印信息*/无法直接通讯,使用Activity作为中间来传递信息,参考Fragment传递给Activity。Activity 获得 Fragment 中的组件(根据 id 或 tag 都可以)/*获取文本框的信息,当然你也可以传其他类型的参数,看需求咯*/在Activity中需要调用Fragment方法的位置。/*定义一个获取信息的方法*//* 使用接口回调的方法获取数据 */原创 2022-09-30 17:10:55 · 1964 阅读 · 0 评论 -
android ViewPager
参考https://blog.youkuaiyun.com/vitaviva/article/details/111409797。FragmentPagerAdapter现在已经推荐不适用了,即使是两个参数的构造函数,ViewPager.OnPageChangeListener,以及它的三个方法。//显示哪个Fragment。//state的状态有三个,0表示什么都没做,1正在滑动,2滑动完毕。getCount里面返回的是我们导入素有Fragment的长度。方法,在销毁某个Fragment的时候会执行。原创 2022-10-05 08:18:36 · 1285 阅读 · 0 评论 -
android activity监听会退键退出桌面
【代码】android activity监听会退键退出桌面。原创 2022-10-05 10:22:19 · 279 阅读 · 0 评论 -
android lifecycle使用
封装的独立功能可以访问activity的生命周期,无需在activity class的生命周期里面对某个封装好的功能进行操作。原创 2022-09-07 20:08:16 · 931 阅读 · 0 评论 -
Android eventBus 在线程上的使用
eventBus运行在线程上面有四种模式POSTING 在那个线程发布,订阅回调函数就在那个线程运行 MAIN 不管在哪个线程发布,订阅回调函数都在主线程 MAIN_ORDER 不管在哪个线程发布,订阅回调函数都在主线程,如果在主线程发布,订阅回调函数里面的耗时操作不会堵塞发布函数 BACKGROUND 不管在哪个线程发布,回调函数都在运行在非UI线程 ASYNC 订阅函数一定运行在一个独立的新开的线程(发布方和订阅方不一样)里面,非主线程和普通回调函数不一样,线程订阅回调函数添加了...原创 2020-09-06 19:32:52 · 726 阅读 · 0 评论 -
Android org.greenrobot:eventbus 的基本使用
1.安装 org.greenrobot:eventbus依赖包3.声明两个class,SuccessEvent和FailureEvent2.activity订阅事件&&回调函数处理4.Fragment发起订阅Activity:package com.example.handleproject;import android.content.BroadcastReceiver;import android.content.Context;import andr.原创 2020-09-06 14:43:39 · 3808 阅读 · 0 评论 -
Android-LocalBroadcastManager 本地广播(只有当前app才能接受到他自己发送的这条消息) frament和activity通讯
1.首先安装依赖包,implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.02.activity声明接收和处理广播的BroadcastReceiver3.onStart 生命周期里面订阅和设置接受广播的BroadcastReceiver4.onStop生命周期里面取消订阅5.framment里面发起广播activity:package com.example.handleproject.原创 2020-09-06 14:24:26 · 594 阅读 · 0 评论 -
android-DialogFragment简单使用&&Framgent通讯方式之一
PublisherDialogFramgents实现:1.继承DialogFragment2.提供接口3.提供接受 activity传入的new 接口函数4.添加选项,以及点击某个按钮时候出发对应接口函数里面的回调函数package com.example.handleproject;import android.app.AlertDialog;import android.app.Dialog;import android.content.DialogInter...原创 2020-09-05 13:06:17 · 385 阅读 · 0 评论 -
android-recycle-view 基础使用 01
recyclerView是对listView的优化,具体描述和listView的操作步骤几乎差不读,主要区别在:1.适配器里面多了ViewHolder,listView虽然不是必须,但是如果需要优化性能也需要使用到ViewHolder2.activity的java 添加了RecyclerView.LayoutManager 可以快速切换水平布局,栅格化布局,和瀑布布局关于适配器 Adapter,可以在初始化的构造函数里面传入数据,也可以在Adapter里面添加个自定义方法接受数据来更新.原创 2020-08-30 23:53:59 · 164 阅读 · 0 评论 -
android-listview 优化 viewHolder(节点缓存池)
listview每次滚动时候都会销毁不再可视区内的列表元素,显示在可视区内的列表元素用缓存池存起来列表元素,避免每次都重新生成package com.example.handleproject;import androidx.appcompat.app.AppCompatActivity;import android.content.ComponentName;import android.content.Context;import android.content.Intent.原创 2020-08-23 15:23:13 · 272 阅读 · 0 评论 -
android-listView 两种点击方式
在adapter里面添加(列表需要添加final 否则点击函数里面无法获取) 在adpater外面给adpate添加package com.example.handleproject;import androidx.appcompat.app.AppCompatActivity;import android.content.ComponentName;import android.content.Context;import android.content.Intent;impor.原创 2020-08-23 15:06:52 · 394 阅读 · 0 评论 -
android-listView (获取安装的应用列表)
布局文件添加listView元素 创建单个列表元素xml布局文件 获取listView 给他listView设置adapter 给adapter设置列表package com.example.handleproject;import androidx.appcompat.app.AppCompatActivity;import android.content.Context;import android.content.Intent;import android.content.原创 2020-08-23 14:41:58 · 408 阅读 · 0 评论 -
android-数据库操作(mysql和函数式操作)
JAVA:package com.example.handleproject;import androidx.appcompat.app.AppCompatActivity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelp原创 2020-08-19 10:27:14 · 235 阅读 · 0 评论 -
android-sqlite 增删改查
视图效果:java:package com.example.handleproject;import androidx.appcompat.app.AppCompatActivity;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.os.Bund.原创 2020-08-16 21:25:25 · 588 阅读 · 0 评论 -
android-内部存储
设计内部存储有两个apiContext.getFileDir(); 获取到/data/data/包名/filesContext.getCacheDir() 获取到/data/data/包名/cache内部存储不需要动态获取权限,但是依旧需要在Manifast.xml文件里面添加文件读写权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-pe原创 2020-08-15 11:54:11 · 186 阅读 · 0 评论 -
android-外部存储
外部存储,个人理解是在app作用域之外存储,就是数据没有和app做关联,app卸载后,它依旧存在而不再是之前手机本身存储空间和sd卡的区别,现在安卓手机已经不携带可拆卸的SD卡androidManifest.xml 需要写入读写权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android..原创 2020-08-14 12:19:57 · 219 阅读 · 0 评论 -
Android-SharedPreferences 读取写入
SharedPreferences 提供永久存储本地键值对的功能1.读取 share.getString("account","");//第二个参数是获取不到内容适合返回的2.设置 editor.putString("account",accountStr);//可以设置多种基本类型数据多种操作模式 Activity.MODE_PRIVATE,//默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,...原创 2020-08-14 10:17:30 · 695 阅读 · 0 评论 -
android-Handle 定时器
package com.example.handleproject;import androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.widget.TextVi.原创 2020-08-13 09:50:23 · 608 阅读 · 2 评论 -
handle
handle 两个作用子线程通知主线程 定时任务package com.example.handleproject;import androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.os.Syst.原创 2020-08-09 21:15:11 · 161 阅读 · 0 评论 -
安卓刘海屏沉浸式(内容绘制到底部,隐藏底部导航栏,状态栏背景颜色为透明)
纯java实现:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Window window = getWindow(); // 5.0以上系统状态栏透明 if (Bu原创 2020-07-23 10:59:26 · 850 阅读 · 0 评论