Android_demo
文章平均质量分 75
矿坑中的野猫
这个人记录一下日常操作。
展开
-
Android H5视频全屏,自适应视频
Android H5视频全屏自适应操作.原创 2022-10-27 16:27:38 · 3389 阅读 · 0 评论 -
ViewModel+Flow的绝佳实例和封装
ViewModel+Flow的绝佳实例和封装0.前言在最近的Android开发中,主流推送慢慢从Java→Kotlin,LifeData→Flow.那里面各有各的好处,也都是为了解决不同应用场景给出不同的方案。但是在使用官方推荐的ViewModel+Flow时,会有很多需要解决的细节,里面也会牵涉到比较多的知识点。所以这个文章就是将自己学习到的东西进行总结.此文章会涉及到的知识点会比较多包括:kotlin扩展函数kotlin高阶函数kotlin内联函数Flow的使用1.Flow的简原创 2022-05-23 11:26:46 · 2820 阅读 · 0 评论 -
JetPack 之 Pagging3.你可以不用,但是不能不会
JetPack 之 Pagging31.Pagging3是什么Pagging3是帮助用来做加载和显示 本地存储或者处理更大的数据集(网络)的数据页面.简单来讲,就是一个分页加载库.具有的好处为:1.只需要按照它提供的架构去编写业务逻辑,就可以轻松实现分页功能。2.非监听列表滑动事件.实现效果为:2.Pagging3的依赖def paging_version = "3.1.1"//Java依赖implementation "androidx.paging:paging-runtime:原创 2022-05-06 10:11:32 · 987 阅读 · 0 评论 -
ViewModel的原理解析
1.ViewModelViewModel作为Android JetPack里面的重要的一员,确实担任了一个十分重要的角色。也是实现MVVM架构的基础。所以会用并不能代表什么,而稍微把原理理清楚,你可以获得更多的知识(面试八股文)2.功能1.不会因为屏幕旋转等Actiity配置而导致销毁.2.跟随生命周期这里就不说明APi的使用了,网上文章太多了…3.不会因为屏幕旋转等Actiity配置而导致销毁这里只分析AndroidX我们来看一下他为什么可以跟随生命周期把.我们入口使我们的实例化过程原创 2021-12-07 09:52:41 · 2938 阅读 · 0 评论 -
rxjava+LiveData VS 协程+flow, +Retrofit+Okhttp3,两种方案的不同使用.
1.前提作者最近在学习kotlin,刚看到协程,又看到了flow.发现这两个东西是可以完成取代rxjava和LiveData的。然后我就来找不同,一起体验一下两种东西加在一起的不同. 当然了,如果你使用的是JAVA,就老老实实用RXJAVA+LiveData把。 协程是Android里面kotlin特有的。2.对比是骡子是马,拉出来遛一遛,咋们来稍微对比一下这两种不同东西.基础的概念我就不放了,大家可以先去了解一下,我这里只提一些重要的。RXJAVA:链式编程,切换线程贼方便.实现异步操作,原创 2021-09-15 10:38:11 · 1446 阅读 · 0 评论 -
Android 修改应用为系统级应用,模拟器root,修改语言配置,发送adb shell命令,
前言:工作上需要开发一个系统级的应用,但是在调试上很不方便,自带的Android板并不符合最终的定制,而且模拟器也能得到更好的开发体验.那直接在模拟器上如何将自己的应用改成系统应用,也更方便的开发自己的应用呢?..1.准备好模拟器普通来说我们下载的后面导游的Google Play,是无法进行root的,那自然就只能开发手机正常应用,而无法将自己的应用改成系统应用。所以要重新下载一个可以root的应用.一般选择下载模拟器我们会在Recommended内,所以我们点击x86 Images的镜像,选择后缀原创 2021-08-16 14:26:14 · 1817 阅读 · 0 评论 -
记录Android 组件化中使用Navigation中的一个坑.
问题如下:所有Fragment分布在不同的Module内.例如:Fragment_1在Module_1中.Fragment_2在Module_2中.navigation文件有且只能在app这个依赖所有module的壳中.因为不在app内,则无法引用所有的Fragment.那跳转可以使用int yId = getResources().getIdentifier(“actionname”,“id”,“packname”);寻找资源Navigation.findNavController(bi原创 2021-07-16 11:49:08 · 858 阅读 · 0 评论 -
Android 关于如何弄出一个正常好用的文件管理器.
1.文件管理器的选择由于本人是一个懒人,而且又不是很喜欢写重复的轮子,更喜欢把人家的轮子拿过来改一波。所以我直接选择Start最高的兄弟的文件管理器.https://github.com/fishwjy/MultiType-FilePicker这里其实可以自己写一下可能自己的思路,大致上应该是RecycView去配上查找所有文件然后进行分类的这样的思路,当然这里FilePicker寻找的文件搭配上的Android自带的媒体库,这样就不用那么麻烦了…2.FilePicker修改文件后不更新查了很多原创 2021-07-10 15:59:21 · 299 阅读 · 4 评论 -
Android界面适配通用工具(RelayoutTool)-根据分辨率等比例缩放
这是自己项目中用的界面适配工具,通过获取当前设备的分辨率来做等比例缩放的工具。下面是两种常用的地方与方式1.BaseActivity方式,通过集成基类来对activity的界面做适配package com.jiuma.projectbase; import android.app.Activity;import android.util.DisplayMetrics;import android.view.View;import android.view.ViewGroup.LayoutPa转载 2021-06-10 17:32:18 · 473 阅读 · 0 评论 -
fragment 变成悬浮窗window
原文链接:https://blog.csdn.net/zxd_Android/article/details/87642998背景:项目中UI层有SurfaceView,其渲染展示的是摄像机等采集画面,但是测试提了一个问题单,如果在当前页面中跳出到其他页面,会crash,经过log分析,是由于surfaceview 在失去焦点的时候会走到onDestroy方法,也就是surfaceview会失效。解决思路:surfaceview不失去焦点就可以了,改用悬浮窗实现。UI层 最主要的页面结构如下:&l转载 2021-06-08 09:20:10 · 941 阅读 · 0 评论 -
MPAndroidChart柱状图——显示不同渐变色的柱状图
本来设计图,方方正正的柱图不好嘛~非要加一些奇奇怪怪的需求0-0先上图:需求大概就是需要渐变色,又要下面底平,上面是圆头的。正常我们在官方例子里面,我们可以知道.BarDataSet set1;set1.setFills(gradientFills);这样就可以设置渐变色了,但是这里有一个坑需要注意的是,如果是implementation V3.1的版本,这个方法会不存在,所以需要下载源代码然后到自己的库里面去。OK,好了,剩下就是圆头的事情了。众所周知,BarChart画画的事情,原创 2020-11-19 16:08:52 · 2480 阅读 · 5 评论 -
全文解析ViewGourp事件分发以及滑动冲突。(三)
1.滑动冲突的场景好,上一篇文章我们已经基本讲述了View的分发机制了。全文解析ViewGourp事件分发以及滑动冲突。(二)那我们就开始讲述一下滑动冲突的问题。常见的滑动冲突的场景:(1)滑动方向不相同,ViewPage和ListView(2)滑动方向相同,ViewPage和Scrollview(3)符合嵌套(禁止套娃)当然做过一段Android开发的同志已经开始发表疑问了,我ViewPage+ListView并没有发生这样的事情啊,那是因为Google的大佬早就想到这个问题,ViewPa原创 2020-10-29 13:39:36 · 134 阅读 · 0 评论 -
全文解析ViewGourp事件分发以及滑动冲突。(二)
OK,通过上一篇文章全文解析ViewGourp事件分发以及滑动冲突。(一),应该对单个View的分发有一定的基础概念了,我们继续进行ViewGroup事件的分发机制。1.分发的顺序要知道的是,当我们手指触摸屏幕的时候,最先的最上层能接受到的先是Activity,再到我们的各种控件内,可能是ViewGroup,也有可能就一个View.(再次的源码分析我功力不够,去看大佬的文章吧)我们就总结一下Activity的dispatchTouchEvent方法:Activity—>PhoneWindo原创 2020-10-29 10:58:51 · 107 阅读 · 0 评论 -
全文解析ViewGourp事件分发以及滑动冲突。(一)
1.基本概念咱们脑子不太好,所以先不用管Group的分发先。我们先从VIew的分发看起。点击事件分发的基本函数:public boolean dispatchTouchEvent(MotionEvent ev)功能:用来进行事件的分发public boolean onInterceptTouchEvent(MotionEvent ev)功能:用来判断是否拦截某个事件。public boolean onTouchEvent(MotionEvent ev)功能:处理点击事件,在di原创 2020-10-28 16:55:03 · 107 阅读 · 0 评论 -
Android 的Excel表的数据导出
前言用Android 把一些数据用Excel表导出一、引入jxl库?1.直接引用implementation group: ‘net.sourceforge.jexcelapi’, name: ‘jxl’,version: ‘2.6.12’2.下载jar包后引用网址,怎么引用就不说了。二、使用步骤1.创建xml文件代码如下(示例): //返回文件夹路径 private static String CreateDir(String dirname){ Str.原创 2020-09-12 15:46:29 · 435 阅读 · 0 评论 -
ViewGroup.onInterceptTouchEvent(),onTouchEvent()事件学习
onInterceptTouchEvent()onInterceptTouchEvent()是用于处理事件(类似于预处理)并改变事件的传递方向。返回flase,事件则传递给子View。由子View继续处理。子View继续从onInterceptTouchEvent()开始轮回–>如果子View的OnTouchEvent返回true,则onInterceptTouchEvent()的move、up执行.返回true,事件则传递传递给当前的控件的onTouchEvent()处理(自己的onTouch原创 2020-08-19 16:34:49 · 599 阅读 · 0 评论 -
PopupWindow的基本使用以及宽高设置。
1.先建立一个自己的PopupWindow类。布局自己View加入,并且也可以自定义一些功能。这里就不写了public class TestPopWindow extends PopupWindow implements View.OnClickListener{ private String TAG = "TestPopWindow"; private final Context gContext; public TestPopWindow(Context context) {原创 2020-08-18 13:50:18 · 2383 阅读 · 0 评论 -
MPAndroidChart 动态多折线图。
先直接上图把。x轴,底部为1440点,对应一天的1440分钟。数据可能不是连续的,所以如果连续超过10分钟(10个点)都没有点的时候。就把前面加过的数据作为数据集,加入到datasets数组内。最后形成的结果就是,数据集和折线的数量是不确定的。会根据数据源的变化而变化,形成这样比较好看,而且时间也比较精准的折线图。核心代码: /** * Demo class representing data. */ public class Data { fi原创 2020-07-31 14:54:11 · 641 阅读 · 0 评论 -
MPAndroidChart x轴分钟划分一天
灵感来源:https://www.it72.com/thread-12280.htm怎么用MPAndroidChart ,作者就不废话了,网上有很多基础教程。这里主要解决自定义x轴显示的问题。我将x轴分为606024=1440 个点。当我想在360(6:00),720(12:00),1040(18:00)下方显示多少小时。写如下代码xAxis.setLabelCount(5);//标签格数xAxis.setGranularity(1f);//设置最小间隔,防止当放大时,出现重复标签。 x原创 2020-07-29 15:02:56 · 930 阅读 · 1 评论 -
Android问题总结(1)
1.int和Integer的区别https://blog.csdn.net/q5706503/article/details/83386365总结:integer是包装类,而int是基本类型。int–>编译器会自动装箱成integer类型。Interger i = new Interger(1)-->堆中产生。Interger j = 1 --->栈中指向所以这两者不相等。Interger i = 1Interger j = 1i == j -->truei =原创 2020-07-24 15:06:06 · 145 阅读 · 0 评论 -
ButtonNavigationView+Badage+反射,聊一下思路构想。
参考资料:ButtonNavigationViewExhttps://blog.csdn.net/qq_35064774/article/details/54177702反射机制https://blog.csdn.net/ju_362204801/article/details/90578678最近学习了ButtonNavigationView,发现用起来很方便但是有一定的局限性,然后去网络查资料看人家是怎么修改的。利用反射官方存在的View去构造自己自定义个的"View",这样子就可以突破这个限原创 2020-07-08 16:06:32 · 794 阅读 · 0 评论 -
Android网络请求加载页面(局部)
Android网络请求加载页面局部版 问题分析解决方法问题分析1.由上篇文章可实现全页面的加载页面过程。2.但是我看了下斗鱼APP应该也是网络加载数据的,所以关了网络去这个界面。发现,有一些默认的布局还是存在的,而不是像上篇文章一样那么的粗暴。直接把整个布局先变成加载的布局3.所以在保证本身布局的存在下去,用一个加载布局出来。思路就是用自定义控件解决方法1.实现加载自定义部件,继承LinearLayout可以说和上篇文章一样不用动。public class LoadingFramelayo原创 2020-07-02 17:18:16 · 680 阅读 · 0 评论 -
Android网络请求失败的加载页面(全页面)
Android网络请求加载页面需求问题分析解决方法需求1.页面由网络请求数据,得到对应的数据初始化。2.考虑网络请求需要时间,所以需要加载页面,若加载不成功则多一个按钮重新加载初始化。问题分析1.要有加载动画2.线程解决UI变化问题。(/用Hander也可以)解决方法1.实现加载页面,继承LinearLayoutpublic class LoadingFramelayout extends LinearLayout { String TAG = "LoadingFramelayou原创 2020-07-02 15:33:53 · 1148 阅读 · 0 评论