![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
加深学习
文章平均质量分 88
小矮子tt
这个作者很懒,什么都没留下…
展开
-
RecyclerView 多布局实现、动态设置布局管理器、StaggeredGridLayoutManager占满一行
RecyclerView实现多种item布局动态改变每一行的列数(动态控制布局管理器):重写adpater中的onAttachedToRecyclerView()方法:动态改变布局管理器调整item行数:@Override //动态设置布局管理器行数public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) { RecyclerView.LayoutManager manager = recyclerVi转载 2020-08-27 21:40:22 · 3862 阅读 · 0 评论 -
CoordinatorLayout(协调员布局) 使用
Material Design 之 Toolbar 开发实践总结Material Design之 AppbarLayout 开发实践总结Material Design 之 Behavior的使用和自定义Behavior转载 2020-05-13 10:08:35 · 332 阅读 · 0 评论 -
我的 Kotlin 学习记录
变量:val 声明一个不可变的变量,对应java的final变量。var声明一个可变的变量,对应java的非final变量。Java 与 Kotlin数据类型对照表Java基本数据类型Kotlin对象数据类型数据类型说明intInt整形longLong长整形shortShort短整形floatFloat单精度浮点型double...原创 2020-05-12 21:01:54 · 180 阅读 · 0 评论 -
android实现 文本超链接(记录)
效果:代码:PS:改变超链接文本的颜色在XML中使用TextView的android:textColorLink="#009688"属性 TextView textView = findViewById(R.id.text_my); //创建可扩展字符串并输入内容 SpannableString spannableString = new Sp...原创 2020-04-20 17:18:53 · 1029 阅读 · 0 评论 -
PopUpWindow基本使用(全屏显示)
PopUpWindow使用详解(一)——基本使用转载 2020-04-08 14:58:07 · 1943 阅读 · 0 评论 -
防止点击事件的多次连点
private long lastTime = 0; //记录上一次运行逻辑代码的时间,为下次判断时间间隔做准备btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (System...原创 2020-04-02 09:51:55 · 1064 阅读 · 1 评论 -
今日头条屏幕适配方案终极版:AndroidAutoSize
讲解文章(原文链接)github中文版Readme主单位Demo副单位Demo转载 2020-04-01 10:01:19 · 327 阅读 · 0 评论 -
MMKV基本使用
首先在app创建时初始化:public class BaseApplication extends Application { @Override public void onCreate() { super.onCreate(); MMKV.initialize(this); //初始化mmkv }}然后创建MMKV://使用默认...原创 2020-03-30 16:38:46 · 5827 阅读 · 0 评论 -
MagicIndicator+ViewPager的简单使用 与 嵌套使用
效果:布局:<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.c...原创 2020-03-30 13:38:18 · 1544 阅读 · 1 评论 -
Uri 转为 File (顺带记下Retrofit上传文件)
//uri转为file Uri uri; //获取到的uri String[] arr = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolver().query(uri, arr, null, null, null); ...原创 2020-03-24 21:28:19 · 725 阅读 · 0 评论 -
RadioGroup 多行多列显示(一个笨方法)
效果图:布局代码:<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.androi...原创 2020-03-23 21:30:48 · 1285 阅读 · 0 评论 -
高德地图把多个点正好放置在屏幕中(记录下)
通过:aMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 150));来实现newLatLngBounds(bounds, 150) :一参数:LatLngBounds创建一个矩形范围,二参数:padding值代码: ★★★遍历出集合中的最大最小经纬度★★★ double maxLat =...原创 2020-02-18 21:45:56 · 552 阅读 · 0 评论 -
自定义开关按钮Switch
效果图: <Switch android:id="@+id/activity_family_recycler_item_default" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="t...原创 2020-02-18 21:35:17 · 179 阅读 · 0 评论 -
原生侧滑栏DrawerLayout的简单使用记录
DrawerLayout结构包含两个布局第一个是你的主布局第二个是你的侧滑栏布局,此布局可使用NavigationView,如果想要更加灵活的侧滑栏,就用普通布局来自定义侧滑栏DrawerLayout划出的位置通过android:layout_gravity="start"来控制侧滑栏位置(start:左 ;end:右;top:上;bottom:下)xml布局例子:<an...原创 2020-02-18 21:21:55 · 186 阅读 · 0 评论 -
socketIO服务端与客户端(android)通信(记录)
服务端:导入框架:netty-socketio <dependency> <groupId>com.corundumstudio.socketio</groupId> <artifactId>netty-socketio</artifactId> &l...原创 2020-01-17 17:06:59 · 1692 阅读 · 2 评论 -
高德地图服务使用总结
配置高德地图服务1:获取高德地图key想要使用高德地图的服务就必须拥有一个key,每个应用有唯一的key,不能一个key供多个应用使用;官网获取key的教程:官方教程(此教程中的获取 SHA1我觉得不好理解,当时也是困惑了好久,所以我自己整理了一个文章,如果官方的获取 SHA1方法对你没帮助,那你就看看这篇文章吧:发布版sha1与调试版sha1获取(基于AndroidStudio))...原创 2020-01-17 16:15:06 · 1961 阅读 · 0 评论 -
Android在布局XML中与代码中的空格转义符(占位符)
  == 普通的英文半角空格  == ==   == no-break space (普通的英文半角空格但不换行)  == 中文全角空格 (一个中文宽度)  ==   == en空格 (半个中文宽度)  ==  ...转载 2019-12-30 15:54:02 · 717 阅读 · 0 评论 -
TextView跑马灯效果(以及设置无效的坑)
第一步:设置跑马灯效果给TextView添加以下属性 android:ellipsize="marquee" //文字显示不完全,以什么方式显示(这里就以滚动的行形式) android:focusable="true" //获得焦点 android:focusableInTouchMode="true" //获得触摸焦点 an...原创 2019-12-25 15:52:04 · 895 阅读 · 0 评论 -
全局性Dialog(以及遇到的坑:6.0、8.0、使用getApplicationContext()的坑)
完善后的全局性dialog代码:添加权限: <!--动作管理覆盖权限--> <uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" /> <!--系统警报窗口--> <uses-permission andr...原创 2019-12-23 17:43:30 · 537 阅读 · 0 评论 -
fragment+viewpager实现懒加载的两种方式(setMaxLifecycle方式 和 setUserVisibleHint方式)
为什么使用setMaxLifecyclesetUserVisibleHint方式已经不推荐使用了,替代它的方案就是setMaxLifecycle,这里不再具体讲解setMaxLifecycle(讲我也不会哈哈)推荐一篇文章:setMaxLifecycle讲解,想具体了解可以看看。效果:实现fragment懒加载:第一步:FragmentPagerAdapter适配器构造方...原创 2019-12-17 16:07:55 · 4601 阅读 · 2 评论 -
java中的Semaphore与ThreadPool(记录)
需求:控制一个方法,同一时间内,最多只能有五个线程同时访问它Semaphore实现:public class SemaphoreTest { //相当于通行证,这里只有5个通行证,因此mTest()方法每次最多有五个线程同时访问 private static Semaphore semaphore = new Semaphore(5); public static ...原创 2019-12-11 15:11:07 · 234 阅读 · 0 评论 -
selector+shape 与 layer-list+shape的一些使用效果
selector+shape 实现一个 圆角按钮 且 有可点击与不可点击状态:★注意★: selector的item是按照从上到下的匹配原则来改变状态的,一旦匹配到某个item的状态,就不会继续往下匹配了;如果不按照这个匹配规则来的话,会出现设置的item无效的状况。<?xml version="1.0" encoding="utf-8"?><selector xmlns...原创 2019-12-11 13:48:51 · 254 阅读 · 0 评论 -
实现对HashMap集合的排序(正序、倒序、多条件排序)
1: 集合排序需要用的 List.sort();方法,所以要把HashMap转为Listmap.entrySet:就是把(key-value)作为一个整体一对一对地存放到Set集合当中;Set类型应为:Set<Map.Entry<Integer, User>> Set<Map.Entry<Integer, User>> entr...原创 2019-12-09 17:35:03 · 6568 阅读 · 0 评论 -
自定义View学习记录
Paint基本使用: paint.setColor(Color.BLUE); // 设置画笔颜色 paint.setAntiAlias(true); // 是否打开抗锯齿 paint.setStrokeWidth(5); // 设置画笔宽度 paint.setTextSize(50); // 设置绘制字体大小 pain...原创 2019-12-05 15:08:34 · 80 阅读 · 0 评论 -
android中实现日期倒计时(即时刷新UI)
public class Main2Activity extends AppCompatActivity { private TextView textView; //用于显示时间的view private String failureTime = "2019-12-05 16:19:45"; // 失效时间 @SuppressLint("HandlerLeak") ...原创 2019-12-03 17:25:06 · 2021 阅读 · 3 评论 -
android 约束布局总结(ConstraintLayout)
本文章供个人学习查看,如果学习直接去大佬链接:文章链接认识:约束布局可以减少布局的嵌套,提高性能属性:1:相对位置:layout_constraintLeft_toLeftOflayout_constraintLeft_toRightOflayout_constraintRight_toLeftOflayout_constraintRight_toRightOflayout_con...原创 2019-11-20 14:27:57 · 2812 阅读 · 0 评论 -
ARouter的配置及简单使用
配置:BaseModule中配置公用的依赖(避免其它module重复导入):dependencies { // ARouter (还需要在每个使用到的module中配置编译器) api 'com.alibaba:arouter-api:1.5.0'}业务Module中,哪个module使用到了ARouter跳转等,就在它的build.gradle中添加以下依赖://defa...原创 2019-11-13 15:50:17 · 1101 阅读 · 0 评论 -
Dialog+Lottie动画,实现自己的加载框(Progress)
效果:先简单了解下Lottie动画: github: lottieAndroid 获取动画资源网站:Lottie动画获取简单使用:(lottie功能很强大,这里说简单使用,其他的使用请自行查看)res目录下新建raw,把自己的lottie动画(json格式)放到里边xml中:<com.airbnb.lottie.LottieAnimationView andr...原创 2019-11-08 14:42:17 · 677 阅读 · 0 评论 -
EditText问题记录(光标颜色、下一步、动态设置密码输入类型)
网上看了些别人的办法,有的无效,有的切换后弹出的输入法就不再是密码类型的,所以记录一下: isVisibility为全局属性,默认为false if (isVisibility) { loginPwdEt.setTransformationMethod(PasswordTransformationMethod.getInstance()); //设置不可见 ...原创 2019-11-07 16:28:44 · 184 阅读 · 0 评论 -
初识Dagger2记录总结
b站的教学视频: 视频链接Dagger是一个依赖注入框架,降低代码间的耦合度,主要通过注解的方式来使用它。.首先把Dagger2引入项目:java中引入://Dagger2 api 'com.google.dagger:dagger:2.25.2' annotationProcessor 'com.google.dagger:dagger-compiler:2.25...原创 2019-10-29 14:57:15 · 113 阅读 · 0 评论 -
android中View的事件分发流程总结
大佬讲解视频:源码分析+讲解视频事件传递的过程:Activity ——> Window——> DecorView ——> ViewGroup——> View讲解:1:Activity 通过调用super中的方法把事件传递到Window。2:Window是个抽象类没有方法的实现,它的唯一实现类是PhoenWindow,所以事件就到了PhoenWindow中,...原创 2019-10-23 13:43:16 · 237 阅读 · 0 评论 -
Handler的认识与总结
本文章主要为了总结一下,不进行源码的分析,如果需要详细的分析文章,下面有大佬的文章链接大佬文章链接(感谢大佬!)文章中如有不对的地方,还请帮忙指出!十分感谢!Handler,looper,MessageQueue是什么?1:Handler: 发送消息( send()系列 post()系列),处理消息(Runnable,handdleMessage)2:looper: 负责关联线程,消...原创 2019-10-20 20:48:32 · 182 阅读 · 0 评论 -
运行时权限的申请
利用框架:rxpermissions2内部已经做了qpi的判断,不需要再进行判断 implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.3@aar' //下边两个需要一块添加 implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'implementation 'io....原创 2019-04-02 10:11:33 · 226 阅读 · 0 评论 -
Android更改ProgressBar颜色
原文链接: https://blog.csdn.net/carrot_guo/article/details/79274107更改ProgressBar颜色5.0 后 Material Design 支持快速修改progressBar颜色修改代码:android:indeterminateTintMode=”src_atop” android:indeterminateTint=”@co...原创 2019-06-26 10:18:59 · 1108 阅读 · 3 评论 -
Android直接跳转到的系统的权限设置页面
原文地址: http://blog.csdn.net/perarther/article/details/54025042参考文章地址: https://blog.csdn.net/cbbbc/article/details/60148864使用: /** * 跳转到权限设置界面 */ private void getAppDetailSettingIntent(...转载 2019-07-01 15:08:21 · 4681 阅读 · 2 评论 -
android跳转第三方地图app 如果没有第三方app就跳转应用商店
第一步:写一个判断是否安装某个app的方法这里pkgName是你要查询的app的包名,如果不知道可以自行百度,这里我给出几个地图的app报名:public static final String PN_GAODE_MAP = “com.autonavi.minimap”;// 高德地图包名public static final String PN_BAIDU_MAP = “com.baid...原创 2019-06-11 11:13:11 · 1346 阅读 · 0 评论 -
android中的Base64编码与解码
//获取输入框内容 String str=editText.getText().toString(); //编码 String base=Base64.encodeToString(str.getBytes(),Base64.DEFAUL...原创 2019-05-22 14:23:46 · 3019 阅读 · 1 评论 -
Fragment 动态替换
Fragment使用v4包和app包的区别:https://blog.csdn.net/lingdianalex/article/details/52755580ps:因为我比较懒写的介绍的不详细,如果你对fragment了解比较少,那你就去看比较详细的文章吧~嘻嘻嘻。。。我这里用的是v4包下的Fragment (记得继承FragmentActivity)public class MainA...原创 2019-05-16 15:37:15 · 1997 阅读 · 2 评论 -
android WebView 的基础使用
**准备工作:**在布局中添加WebView ;在类中绑定WebView;WebView加载页面: webView.loadUrl("https://www.baidu.com/");//加载百度WebView基本设置(更多设置请自行搜索): WebSettings webSettings = webView.getSettings();//获得websetting webSettin...原创 2019-04-24 13:32:13 · 253 阅读 · 0 评论 -
SharedPreferences通过Gson 存储 集合 List
加入Gson依赖:implementation 'com.squareup.retrofit2:converter-gson:2.4.0'存储时:private List<JsonCityIdBean> listTransferCity = new ArrayList<>(); //全局list("<>"中是泛型实体类) SharedPreferenc...原创 2019-04-26 11:12:30 · 597 阅读 · 0 评论