
android
Jonly_W
开发不动了,准备辞职回家送外卖,唉
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
判断是否在线程中来更新UI
判断是否实在线程中 是的话切换切换 然后更新UIif (Looper.getMainLooper().getThread() != Thread.currentThread()) { runOnUiThread(new Runnable() { @Override public void run() { ..原创 2021-12-27 13:55:04 · 1192 阅读 · 0 评论 -
IllegalStateException 记录一个报错
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.如上 上面有报错信息 还有解决办法You need to use a Theme.AppCompat theme (or descendant) with this activity.把你的MainActivity 继承的 AppCompatActivity .原创 2021-12-22 16:50:15 · 1312 阅读 · 0 评论 -
List<String> list 去重
分享一个 List<String> list 集合去除重复数据的方法list=list.stream() .distinct() .collect(Collectors.toList());安全高效无痛苦 你值得拥有!原创 2021-12-21 14:41:40 · 1836 阅读 · 0 评论 -
Android 设置打包命名
//修改apk 的 文件名 applicationVariants.all { variant -> variant.outputs.all { output -> def date = new Date().format("yyyy_MM_dd_hh_mm", TimeZone.getTimeZone("GMT+08")) if (variant.buildType.name == "debug") { ...原创 2021-12-15 16:05:39 · 2400 阅读 · 0 评论 -
Android 代码获取sha1值
public static String sHA1(Context context) { try { PackageInfo info = context.getPackageManager().getPackageInfo( context.getPackageName(), PackageManager.GET_SIGNATURES); byte[] cert = info.signatur...原创 2021-12-07 14:54:20 · 484 阅读 · 0 评论 -
Android中RelativeLayout的常用位置设置属性
RelativeLayout常用位置设置原创 2021-11-19 10:29:54 · 2022 阅读 · 0 评论 -
Android 版本号及对应的版本名
BUG 写的那么苦 看几张图来甜一下吧说到Android SDK,可能对于大佬们来,第一反应肯定就是Android各版本SDK的异同,源码哪些部分做了优化,怎样的优化,加入了什么新的功能,以及平时开发的时候要怎么做到不同版本SDK的适配等等等等的问题。。然而对于一个菜鸟的我来说,说到各个版本的Android SDK,我的第一反应就是,这个版本的SDK是那什么吃的命名来的呢。。。。(可能这就是大佬看门道,我这种菜鸟只配看热闹吧。)好了,废话就到这里了,今天就来总结一下这个热闹吧..原创 2021-11-17 11:47:23 · 2479 阅读 · 0 评论 -
Android 获取sp的jsonString转换成list
String spStr = SPUtil.shareGet(******);if (!spStr.equals("")) { //获取sp值转化成list stringList = new Gson().fromJson(spStr, new TypeToken<ArrayList<M**y.**>>() { }.getType());}记录一下原创 2021-11-15 16:24:37 · 2593 阅读 · 0 评论 -
ERROR: [TAG] Failed to resolve variable ‘${animal.sniffer.version}’
记录一个错误:ERROR: [TAG] Failed to resolve variable ‘${animal.sniffer.version}’刚打开之前的项目 发现报错 各种爆红 detailsView 提示ERROR: [TAG] Failed to resolve variable ‘${animal.sniffer.version}’ 首先试着解错 发现项目好像并没什么错然后就找了一堆博客看 结果发现 发现 重启下 AS 就好 了解决办法:File->In...原创 2021-11-15 10:11:02 · 836 阅读 · 0 评论 -
JAVA 中的Iist 去重方法
1 循环list中的所有元素然后删除重复public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j -- ) { if (list.get(j原创 2021-11-12 13:39:04 · 274 阅读 · 0 评论 -
Android 获取位置信息(经纬度以及坐标)
首先第一步要添加权限<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 第二步是要获取权限因为咱们的6.0及以上的版本把这一类的权限定义为敏感权限/危险权限,所以在6.0之后我们要去动态去获取权限,这一步就省略了 ,如果还原创 2021-11-10 17:10:00 · 2496 阅读 · 1 评论 -
Android 获取设备开机时间
public static String getSystemStartupTime() { long time = System.currentTimeMillis() - SystemClock.elapsedRealtime(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d1 = new Date(time); return ..原创 2021-11-10 16:52:54 · 4028 阅读 · 0 评论 -
可控制的循环使用
int r = 2;开始循环thread t = new thread();Thread c = new Control(t);t.setSleep(true);c.setDaemon(true);t.start();c.start(); /** * 循环上报司机信息 */ class thread extends Thread { private boolean isSleep = true; p.原创 2021-11-09 11:23:44 · 293 阅读 · 0 评论 -
阿里云 热更新EMAS / Hotfix 爬坑记录
废话不多说 什么优缺点 大家肯定已经比较过。如果不知道热更新是个啥 大家可以自行百度这个到没有贬低哪家的意思,现在做功能大家都想找个简单快捷的集成方式 所以还是决定听话不吃亏 哈哈哈在开始之前 我是遇到了一个问题 截止发文前 官方工单还没给我一个解决办法 在高版本上 打出来的包 无法进行生成补丁 一直会卡在构建 ,so 目前的办法是降低 版本 我的之前是7+的 后改到了 3+ 所以有用高版本的兄弟萌要注意下那么好 接下来就进入正式的爬坑之路,1 首先...原创 2021-10-26 17:54:39 · 2072 阅读 · 0 评论 -
Android开发之MQTT的使用
首先要了解MQTT是啥子东西? 之前从来没有听说过啊没办法,许多事情是不能等你准备就绪才可以去做的,生活就是这样,这狗JB生活,淦!这次就把刚做好的MQTT 使用的过程记录一下 分享给大家。如果对MQTT还不太熟悉的小伙伴可以先去百度下 了解下MQTT 是个什么东西。MQTT官网:http://mqtt.org/MQTT介绍:http://www.ibm.comMQTT Android github:https://github.com/eclipse/paho.mqtt.and..原创 2021-10-20 10:40:01 · 5674 阅读 · 0 评论 -
android 自定义view
在咱们的开发过程中 经常遇到要自定义view的需求自定义view有三种1.组合型的(今天就简单整理下)啥事组合型?就是把多个已有的view 组合到一起 成为一个新的控件来使用 比如TextView + ButtonView = 全新的控件 这样使用起来比较方便 可以复用2.继承型的 继承别的控件成为新的控件 这样既可以保留原有的的父类特性 又可以添加一些新的特性 也是常用的3.自绘控件 这种比较复杂点 因为里面的所有绘制逻辑和流程都需要自己来完成 先略过不说重点来讲讲...原创 2021-09-14 17:41:31 · 172 阅读 · 0 评论 -
浅谈Android项目组件化架构
前言用android studio开发的同学应该都知道,androidstudio的架构是project-module形式,也就可以理解为一个项目由多个模块组成。在刚接触android studio时,它的这种架构引出了我一个想法------我们的app也可以使用这样的架构,一个app由多个模块组成,各个模块在自己的module包里。举个简单例子例如我有一个app,有几大模块:首页、视频、我,那么我们构建项目时,就可以分开三个module来构建这几大模块,而不是把这几大模块都放在一个module里面原创 2020-11-30 16:33:22 · 387 阅读 · 0 评论 -
Android中大小两种字体对齐 -- 实现上或者下对齐的解决方法
最近公司项目中,一般是显示一个小的 ¥ 然后一个大大的数字 并且底部对齐。但是在Android里面,TextView往往都是具有一定的空间剩余的,比如你一个TextView是16dp的字体大小,那它一般的高度会达到18~20dp,字体越大,这个数字差别就会越大。原来,这是Google为了显示上下标而给TextView预设的padding,用属性android:includeFontPadding即可设置,将这个属性设置为false即可去除padding(默认为...原创 2020-11-19 16:42:30 · 1861 阅读 · 0 评论 -
Android Mediaplayer+Surfaceview 实现背景循环播放视频
在项目开发过程中 遇到了一个需求 在login页面要做成动态视频背景的效果 简单的说就是背景做个10s视频播放 不可点击 没有进度条 循环播放 还不能影响其他的一些 功能需求 那么我的第一个想法就是RelativeLayout 布局 然后里面用 videoview 来实现 视频的播放 结果倒是实现了 但是效果差点意思 原来的视频尺寸是 宽》高的 结果全屏后直接压缩了 高》宽了 我先上两张图看效果 一个是修改前 二是修改后 额.......原创 2020-11-12 10:44:00 · 1070 阅读 · 2 评论 -
类似banner效果 recyclerview item往左自动滚动 可设置速度和移动距离大小
首先自定义 AutoPollRecyclerView 继承 recyclerviewpublic class AutoPollRecyclerView extends RecyclerView { private static final long TIME_AUTO_POLL = 100; AutoPollTask autoPollTask; private boolean running; //标示是否正在自动轮询 private boolean canRun;/.原创 2020-11-11 16:18:09 · 478 阅读 · 1 评论 -
Android 发送短信验证倒计时60s
开发中经常能遇到发送验证码登录 绑定手机号的验证码获取功能 我大概先整理下整个流程 这样比较清晰明了 首先我们给用户展示的是一个 textview 来显示数据(更新的秒数) 还需要textview 来触发整个事件 onclick 先创建个CountDownTimer 再。。。 没几号代码 你们自己抄吧 贼鸡儿简单 CountDownTimer timer = new CountDownTimer(60 * 1000, 1000) { @Override public void.原创 2020-11-11 15:01:46 · 364 阅读 · 0 评论 -
Android 6.0 以上动态获取权限(亲测可用)
至从android6.0之后,权限在清单文件AndroidManifest.xml里面申明都没有作用了,所以今天如果开发每一款app,都需要动态获取权限,那么我们将怎么动态获取权限呢?下面我举个列子我们需要获取的权限有存储权限、电话权限、定位权限、相机权限。获取权限代码相对固定,复制粘贴就可以。只是贴出主要代码,大家注重思路即可。权限有些是在app内部调用相关功能的时候赋予权限,而有些是在一开始初始化就处理,我这里是后者1 AndroidManifest.xml 中直接声明所需权限...原创 2020-11-11 14:47:43 · 1053 阅读 · 1 评论 -
Android RecyclerView嵌套的滑动冲突问题
在Android的开发中,不可避免的需要用到列表嵌套列表的需要,如recycleView嵌套recylerView,我们就会发现被嵌套的列表会出现滑动冲在滑动子rv的时候无响应(父rv上下滑动 子rv横向滑动),很明显子布局也应该是能滑动的 , 但是你在滑动子布局的时候确实父布局在滑动 这 就是 滑动冲突事件分发机制要向解决滑动冲突问题让子布局正常使用我们需要先了解一下Android的事件分发机制点击事件的传递规则首先我们要明白我们分析的对象是MotionEvent,即点击事件点...原创 2020-11-05 10:54:14 · 1611 阅读 · 0 评论 -
RecyclerView如何嵌套RecyclerView
Linearlayoutmanager RecyclerView嵌套GridLayoutManager RecyclerView布局方式:以一个GridLayoutManager的recyclerview作为Linearlayoutmanager RecyclerView的itemviewMainRecyclerAdapter.javapublic class MainRecyclerAdapter extends RecyclerView.Adapter<MainRecyclerAdap原创 2020-11-05 10:26:23 · 2770 阅读 · 0 评论 -
监听Fragment返回键事件
@Overridepublic void onResume() { super.onResume(); getView().setFocusableInTouchMode(true); getView().requestFocus(); getView().setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View view, int i, .原创 2020-07-20 17:37:17 · 190 阅读 · 0 评论 -
Animation 向上隐藏 向下滑出
/** * 向上滑出 */private TranslateAnimation showAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0.0f);/** * 向下隐藏 */private.原创 2020-06-23 11:31:09 · 560 阅读 · 0 评论 -
Android之MediaStore使用 (查找 音乐/视频/文档/自定义类型文件.apk .zip 等)
在日常开发中,我们经常会使用MediaStore来获取手机的音频、图片、视频等相关信息。下面3个是常见的内部类:MediaStore.Audio 获取音频信息的类MediaStore.Images 获取图片信息MediaStore.Video 获取视频信息query和sql的插叙语句差不多 里面有5个参数getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, mediaColum..原创 2020-05-30 13:04:21 · 9067 阅读 · 7 评论 -
ScrollView嵌套RecyclerView滑动冲突解决
当我们的列表内容过多时 如果不做任何限制的话 会造成RecyclerView滑动 而ScrollView不滑动,知道列表内容滑动到底部的时候才会滑动 。 那么这样的一个用户体验不是很好想要改变这样情况 让RecyclerView 随着ScrollView滑动 那么我们在代码设置一下就可以了mFileManagementRv.setLayoutManager(new LinearLayoutManager(getActivity()){ @Override public boo...原创 2020-05-30 12:40:31 · 565 阅读 · 0 评论 -
imgVIew 铺满整个空间
android:scaleType="fitXY"原创 2020-05-28 09:09:47 · 570 阅读 · 0 评论 -
简单 快速 自定义 Zxing 条码识别框
第一步//zing 扫描码implementation 'com.journeyapps:zxing-android-embedded:3.6.0'第二步CustomZxingViewpublic class CustomZxingView extends ViewfinderView { public int laserLinePosition = 0...原创 2020-04-11 14:35:22 · 856 阅读 · 0 评论 -
android 点击返回键 或者其他按钮 APP进入后台 而不是kill
进入后台@Overridepublic void onBackPressed() { Intent intent = new Intent(); intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.HOME"); startAct...原创 2020-04-07 10:49:06 · 491 阅读 · 0 评论 -
MOB进行第三方登录
项目中免不了要使用到第三方登录 使用QQ 和微信的 数据信息来登录 那么今天来记录下 MOB的使用方法 直接上代码:第一步:dependencies { classpath 'com.android.tools.build:gradle:3.6.1' // 注册MobSDK classpath 'com.mob.sdk:MobSDK:+' ...原创 2020-04-01 14:40:13 · 1288 阅读 · 0 评论 -
android 9.0 拍照 相册选择 图片 裁切后进行 上传到服务器(亲测可用)
implementation 'com.github.bumptech.glide:glide:3.7.0' //用来加载图片implementation 'pub.devrel:easypermissions:1.3.0'还要记得在清单文件中加入 以下代码<provider android:name="androidx.core.content.FileProvid...原创 2020-03-31 10:32:38 · 1756 阅读 · 10 评论 -
android 沉浸式
setContentView(R.layout.activity_personal);//设置全屏显示getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏底部操作栏getSupportActionBar().hide...原创 2018-10-15 11:19:46 · 225 阅读 · 0 评论 -
注册昵称时限制 中文7个字 字母21个
name = findViewById(R.id.name);name.setFilters(new InputFilter[]{filter}); //限制字符输入21String namestring=name.gettext().tostring(); /** * 限制用户输入名的字符长度21 */InputFilter filter = new InputFi...原创 2018-11-15 15:32:23 · 2016 阅读 · 0 评论 -
手机号码正则验证
final String telRegex = "[1][3578]\\d{9}";trim.matches(telRegex) //判断他的返回值是true 还是false true 是正确的手机号false 是错误的手机号原创 2018-11-15 15:36:14 · 1235 阅读 · 0 评论 -
Double类型和String类型互转保留小数点2位
将Double类型的数据保留2位小数:Double a = 2.34566;BigDecimal bd = new BigDecimal(a);Double d = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();d输出就是2.35, 注意会四舍五入将String转Double,并保留2位小数:String a = ...原创 2019-06-01 11:15:05 · 6729 阅读 · 0 评论 -
简单使用 MD5加密
调用方法 传入 要加密的 参数 return 加密后的数据/** * MD5加密 * @param str * @return */private String getMD5Str(String str) { MessageDigest messageDigest = null; try { messageDigest = MessageDi...原创 2019-07-03 09:46:21 · 246 阅读 · 0 评论 -
简单获取 时间戳
/** * 获取时间戳 * @param * @return */public static int getSecondTimestamp(){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// HH:mm:ss //获取当前时间 Date dat...原创 2019-07-03 09:47:59 · 416 阅读 · 0 评论 -
android 获取包名 通过包名获取应用签名
MainActivity 代码:private Signature[] getRawSignature(Context paramContext, String paramString) { if ((paramString == null) || (paramString.length() == 0)) { return null; } Pack...原创 2019-07-03 18:12:57 · 1842 阅读 · 0 评论