Android
_万能的博哥
必须从过去的错误学习教训而非依赖过去的成功,不论你在什么时候开始,重要的是开始之后就不要停止。
展开
-
AndroidStudio自动添加 @org.jetbrains.annotations.Nullable的问题
AndroidStudio升级到4.2.0后,当我们重写个构造方法或者抽象方法就会出现一下错误,导致每次打包失败。@Nullable @org.jetbrains.annotations.Nullable解决方式:apply就解决了。。。原创 2021-09-17 19:56:28 · 1586 阅读 · 1 评论 -
Android缓存大图到SD卡
该功能主要针对资源图片过大占用apk体积,所以先将图片事先下载,在通过Glide加载时先去本地取,取值成功时直接应用且节省了时间,若本地图片不存在或取值失败等,在通过网络加载。。。开启子线程 通过图片url进行本地缓存 判断SD是否挂载 判断本地是否存在该文件 存在将文件放到指定路径下 public void downloadOnly(@Nullable final List<String> imageUrlList) { if (Tools.isEmpty(i原创 2021-03-23 15:32:37 · 199 阅读 · 0 评论 -
Android详情页结合ScrollView完成Title颜色渐变效果
最近在做详情页滑动渐变显示与淡入淡出效果,我也是费尽脑筋查了又查,搜了又搜最后还是用嘴原生的方式实现了,多了不说少了不唠,仔细阅读以下文字。note:接下来这个方法是获取view的原始有颜色,通过RGB计算将色值一点点调透明度。private void setDetailTitleColor(int scrollY) { if (mDetailTitle == null) { return; } if (scrollY == 0) { mDetai原创 2020-08-07 15:14:35 · 824 阅读 · 0 评论 -
Android调用系统原生分享组件
想必做Android开发都会遇到的需求——分享。当然实现的需求和方式的也都各自不一,有接入某个app的SDK进行分享,也有集成第三方平台的例如友盟等等...接下来所要说到的是Android系统提供的分享组件。分享组件能够自动的检索到可以分享app然后将分享内容带入 当然这个也会有所限制的,会有个别app只能分享单一项:“文字+图片”、“图片”、“文字” 好处就是轻量级、避免导入其它jar包或依赖、可减少apk体积 File file = new File(filePath原创 2020-06-22 16:43:19 · 2878 阅读 · 0 评论 -
ScrollView嵌套WebView滑动冲突问题
前言:想必大家都是奔着标题而来的,那么不管实际开发中是否有遇到过,这个确实是一个坑点!!!问题描述:在Android开发中难免遇到Android与Js交互,要想实现交互,第一步就得使用WebView去加载一个html页面,这样才会有许多接下来的操作,使用WebView加载的时候难面遇到一屏幕元素多,但是还得让WebView的界面可滑动时,那外层布局就必须得套一层ScrollView,这...原创 2020-04-13 16:41:17 · 2645 阅读 · 1 评论 -
Android 使用scheme唤起app本地打开
记录一下近期任务。。。以下操作全部基于手机本地已经安装对应app方可执行。没安装建议web前端校验一下跳动app下载页吧。AndroidManifest配置如下:<activity android:name=".RouterActivity"> <intent-filter> <data android:...原创 2019-12-04 20:34:17 · 2316 阅读 · 0 评论 -
Android解决暴力点击方案
简单实用-注释清楚-上代码。public class ClickUtil { /** * 两处点击的间隔时间(毫秒) */ private static long sIntervalAtMillis = 1000L; /** * 资源id */ private static int sResId; /** * 上次点击 时间戳 */...原创 2019-12-02 18:25:00 · 506 阅读 · 0 评论 -
友盟QQ第三方登录分享
友盟QQ登录分享: 需要第三方jar包下载:https://share.weiyun.com/5PUfvYX 切记测试设备需安装QQ应用,以免尴尬。 效果图:1、导入jar包到libs( 右击 add as library)2、自定义类继承Application并重写onCreate()方法(记得清单文件注册.name)引入该方法UMConfigure...原创 2019-02-22 16:16:22 · 1862 阅读 · 0 评论 -
MVP解决内存泄漏:通过引用类型解决内存泄漏问题
在MVP模式中,Presenter是同时拥有View和Model的引用的,那么,当在Presenter中拥有View,即使Activity此时销毁也不能告诉gc回收的,那么内存泄露便由此产生了,下面是解决措施。在Presenter中:public class ShowPresenter<T> { private Reference<T> tRefer...原创 2019-02-17 19:10:52 · 1180 阅读 · 0 评论 -
XRecycleView使用,刷新加载,展示,条目点击
XRecycleView:XRecycleView是RecycleView的封装,使用和RecycleView完全一样,只是这个控件内封装了,上拉下拉的监听方法,也为了条目刷新加载&分页加载为所用,具体看文档源码,项目地址:GitHub-XRecycleView。效果图:依赖:implementation 'com.jcodecraeer:xrecyclervi...原创 2019-02-27 14:32:21 · 1104 阅读 · 3 评论 -
Android第三方框架XBanner轮播简单使用
依赖:implementation 'com.github.xiaohaibin:XBanner:1.6.1'大Model下:maven { url 'https://jitpack.io' }allprojects { repositories { google() jcenter() maven { url ...原创 2019-02-27 19:21:47 · 3777 阅读 · 4 评论 -
Android全局捕获异常机制
个人见解: 全局捕获异常就是在程序出现异常报错时,能够快速捕捉的错误信息,通过实现Thread.UncaughtExceptionHandler接口操作捕获异常信息,能够快速定位问题提高开发效率,并可以给用户视觉反应,不让程序直接崩溃。其实为我们的项目提供一个异常捕获跟踪处理机制,我认为应包含捕获异常、写入异常数据到SD卡中、方便过后解决问题、最终目标为解决异常从而提高...原创 2019-03-02 10:59:24 · 1080 阅读 · 1 评论 -
Retrofit2+RxJava+OkHttp网络请求封装使用+Retrofit注解
1.纯属方便自己使用2.将网络请求的业务代码和UI展示的代码分离,用时就调用。3.接口请求复用。依赖: implementation 'com.squareup.retrofit2:retrofit:2.4.0' implementation 'com.squareup.retrofit2:converter-gson:2.4.0' implement...原创 2019-03-16 14:25:49 · 744 阅读 · 1 评论 -
Android第三方流式布局FlowLayout简单实用(搜索历史记录)
效果图:导入大Model下:maven { url 'https://jitpack.io' }builde.gradle依赖:implementation 'com.github.LRH1993:AutoFlowLayout:1.0.5'布局文件:<RelativeLayout xmlns:android="http://schemas.and...原创 2019-03-08 10:35:18 · 1647 阅读 · 0 评论 -
Android二级购物车逻辑+RecycleView嵌套实现
上一篇文章已将说了一级购物车的逻辑,在这在按步骤贴一下二级购物车代码,我是用RecycleView嵌套RecycleView完成的,没有用二级列表,无非是下面几个逻辑,具体的看注释,具有一定的参考价值,感兴趣的可以参考一下!先去第五步完成自定义View加减器,布局用;逻辑:全选或全不选(复选框);商品控制商家(复选框);商家控制商品复选框(复选框);商家和商品控制全选(复选...原创 2019-04-04 15:29:03 · 894 阅读 · 0 评论 -
Android一级购物车逻辑处理+功能实现
购物车:一般情况下分为两种,一种是二级购物车(商家下包括商品),另一种是商城代表商家,购物车只有商品,我这里就是第二种,我只是简单的介绍了购物车页面的各种复选框和价格的逻辑处理,直接上代码,注释清晰。准备工作:在你商品的bean对象里加一个boolean类型的变量即可;Activity或fragment:public class ShopCarFragment extend...原创 2019-03-24 16:04:54 · 1148 阅读 · 3 评论 -
Android 6.0以上动态访问权限调用相机(隐式跳转)
Android6.0更新后,推出了动态权限管理。以往我们将涉及到的权限都写在清单文件中直接进行配置,对于一些敏感的权限,写程序时必须在程序中进行声明。相机和相册选择图片都涉及用户隐私的敏感权限,所以必须在程序中进行声明。自定义一个点击事件 : imgPhoto.setOnClickListener(new View.OnClickListener() { @Ov...原创 2019-04-05 15:38:26 · 1881 阅读 · 0 评论 -
Android自定义流式布局(搜索历史记录)
仅供参考:外层布局://布局名为layout_liu<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> ...原创 2019-04-06 12:11:23 · 1491 阅读 · 0 评论 -
Android使用RecyclerView实现瀑布流效果的列表展示
瀑布流效果图:第一步:设置RecycleView的布局管理器为瀑布流StaggeredGridLayoutManagerRecyclerView rlv = view.findViewById(R.id.pop_rlv);rlv.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManage...原创 2019-05-04 19:42:07 · 3908 阅读 · 0 评论 -
Android通过自定义View实现心形(贝塞尔曲线)
通过继承View实现的❤形在绘制心形需要Path类中的两个重要方法分别是:moveTo、cubicTomoveTo 不会进行绘制,只用于移动移动画笔。lineTo 用于进行直线绘制。quadTo 用于绘制圆滑曲线,即贝塞尔曲线。cubicTo 同样是用来实现贝塞尔曲线的。具体实现:public class HeartView extends View { pr...原创 2019-05-08 11:53:55 · 1949 阅读 · 0 评论 -
Android摇一摇功能实现(摇一摇监听)
近期项目中要求增加摇一摇功能,搜了相关帖子,自己整理一套代码,发个博客保留一份。解析:Android中摇一摇主要通过[SensorManager]实现,想了解可以查一下。上期的不够完善 更新了一下,添加了防暴力摇动控制public class ShakeService implements SensorEventListener { private Context mContex...原创 2019-09-20 16:17:28 · 1497 阅读 · 0 评论 -
Android实现震动功能
#首先添加权限#<uses-permission android:name="android.permission.VIBRATE" />震动开始方法: /** * @param activity * @param pattern 震动频率 * @param isRepeat 是否循环执行震动 */ public static void s...原创 2019-09-20 16:28:10 · 2322 阅读 · 2 评论 -
Xml解析解析xmlpullparser方法-详细介绍
首先将xml文件导入SD卡xml文件如下:<?xml version="1.0" encoding="utf-8"?><persons> <person id="01"> <name>小公公</name> <age&g原创 2018-12-18 16:34:17 · 1938 阅读 · 0 评论 -
Recyclerview控件使用,多条目展示介绍,Recyclerview点击事件(单击、长按[删除])。
RecylerView:RecyclerView是support-v7包中的新添加控件,是一个强大的滑动展示控件;适配器:RecylerView自带适配器,继承RecylerView.Adapter即可,自定义ViewHolder传给适配器泛型;多条目展示:多条目展示也就是分开了几种条目类型,重写getItemViewType(),定义俩个常量控制条目切换;点击事件(单击、长按)...原创 2019-02-16 14:50:20 · 811 阅读 · 0 评论 -
封装OkHttp3(单例模式),内置封装拦截器、Get、Post请求
前言:这也算是开年第一篇,上个实用奏效的OkHttp3网络请求 ,这是一个高效地使用HTTP能让资源加载更快,节省带宽。OkHttp:Okhttp是一个处理网络请求的开源项目,是安卓最火热的轻量级框架。据说哪怕你默认网络出现问题的时候OkHttp依然坚守自己的职责,它会自动恢复一般的连接问题,如果你的服务有多个IP地址,当第一个IP请求失败时,OkHttp会交替尝试你配置的其他I...原创 2019-02-15 20:44:50 · 1544 阅读 · 0 评论 -
Android资讯新闻类App(头条、网易等),频道管理集成之数据库存储
经常看新闻类的大家都知道这个频道管理。 图片转载https://blog.csdn.net/u011916937/article/details/50483278 我这里是用的Github,开源项目,导入的依赖,下属必须配置。 allprojects { repositories { google() jcenter() //工程下的...原创 2019-01-16 19:55:59 · 3322 阅读 · 2 评论 -
Android必学之AsyncTask,多线程AsyncTask,详细AsyncTask使用教程
AsyncTask,即异步任务,是Android给我们提供的一个处理异步任务的类.通过此类,可以实现UI线程和后台线程进行通讯,后台线程执行异步任务,并把结果返回给UI线程.为什么需要使用异步任务? 我们知道,Android中只有UI线程,也就是主线程才能进行对UI的更新操作,而其他线程是不能直接操作UI的.这样的好处是保证了UI的稳定性和准确性,避免多个线程同时对UI进行操作而造成UI的...原创 2018-12-30 09:06:35 · 574 阅读 · 0 评论 -
ImageLoader实用方法讲解
做android应用的时候,多少会接触到异步加载图片,或者加载大量图片的问题,而加载图片我们常常会遇到许多的问题,比如说图片的错乱,OOM等问题,对于新手来说,这些问题解决起来会比较吃力,所以就有很多的开源图片加载框架应运而生,比较著名的就是Universal-Image-Loader。下载JAR包添加到工程libs目录下 (https://githu...原创 2019-01-03 17:21:09 · 644 阅读 · 0 评论 -
Bitmap三级缓存,简单介绍,简写简用。
首先简介一下: 首先你第一次进一个App时,一定是先在网络请求图片的,之后我们可以将图片保存至本地SD卡和内存,再次进入时优先访问内存中的图片缓存,若内存中没有,则加载本地SD卡中的图片。 其中,内存缓存应优先加载,它速度最快;本地缓存次优先加载,它速度也快;网络缓存不应该优先加载,它走网络,速度慢且耗流量。(总的来说由快到慢)。 ...原创 2019-01-03 16:32:14 · 902 阅读 · 0 评论 -
HttpClient网络请求基本操作、HttpClient简单方法
(掌握)httpclient的get和postHttpClient:他是android集成的一个三方框架 Http框架HttpClient在URL HttpClient再次进行了oop的封装HttpClient:他就是一个网络请求 执行请求 回送响应 ...原创 2018-12-29 10:51:02 · 967 阅读 · 0 评论 -
WebView跳转-简单易学
WebView简单用法-适用/*加网络权限 &lt;uses-permission android:name="android.permission.INTERNET"/&gt;*/ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan...原创 2018-12-18 16:42:15 · 272 阅读 · 0 评论 -
Android常用隐式跳转大全(系统网络、系统时间、系统GPS、系统各种状态)
相机相册隐式跳转..点我跳转系统网络设置startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS))设置界面:Intent intent = new Intent(Settings.ACTION_SETTINGS);飞行模式,无线网和网络设置界面Intent intent = new Inten...原创 2018-12-27 09:46:08 · 763 阅读 · 0 评论 -
BackGround内外两种,Selector简用,App底部按钮=Selector背景选择器
在android中,给相应的布局设置背景图片有两种方法第一,在布局中即在相应布局中使用以下属性android:background="@drawable/bg" ///在资源文件中添加自己想要的背景图片 在此引用即可 第二,在代码中实现,如下LinearLayout layout = (LinearLayout)this.findViewById(R.id.mylayout)...原创 2018-12-21 09:12:23 · 548 阅读 · 0 评论 -
Android调用相册或相机,隐式意图,简单写法So easy
-----------------------------------------------相机意图---------------------------------------------------// 设置相机跳转意图(隐式跳转) Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.a...原创 2018-12-20 15:58:17 · 510 阅读 · 0 评论 -
Service服务&获取随机数&获取系统当前时间
自定义Service类继承app包下的Service,然后创建内部类继承Binder,接下来写自己需要的方法我这个只是简单地列举两项方法:获取(0-9)随机数,获取当前系统时间import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;import android.app.Servi...原创 2018-12-20 15:41:54 · 1254 阅读 · 0 评论 -
Android网络请求之HttpUrlConnection+Handler用法
Apache接口(org.appache.http)----HttpClient<--点这,使用起来更方面更强大。一般来说,用这种接口。不过本文还是把第一种接口过一下。 任何一种接口,无外乎四个基本功能:访问网页、下载图片或文件、上传文件.本文示范的是访问网页和下载图片。HttpURLConnection继承自URLConnection类,用它可以发送和接口任何类型和长度的数据,...原创 2018-12-30 09:19:01 · 1091 阅读 · 0 评论 -
XListView实现下拉刷新上拉加载+分页加载+适配器展示
Xlistview项目主要是三部分:XlistView XListView主体 XListViewHeader header XListViewFooter footer控件调用:<com.bwie.xlistview.XlistView android:id="@+id/xlistView" a...原创 2019-01-04 15:51:02 · 228 阅读 · 0 评论 -
XListView或PullToRefresh上拉加载下拉刷新+多条目展示---在BaseAdapter中
思路: 首先数据获取到时各式各样,这个时候我们在适配器给予不同类型的数据展示不同类型条目,具体看数据定义。重写两个方法即:getTtemViewType()和getViewTypeCount()方法,在getTtemViewType方法中有几种布局就分几种情况然后返回,然后是getView方法中通过getTtemViewType()方法获得类型type,然后就是根据布局去找空间,去赋值就好...原创 2019-01-04 21:01:54 · 291 阅读 · 0 评论 -
Fragment利用newInstance动态工厂方法来创建多个Fragment
newInstance()方法这个是一种“静态工厂方法",需要的时候来调用去实例化;让我们在初始化和设置一个新的fragment的时候免得去一一创建 。 调用MyFragment.newInstance(index)去动态创建Fragmentpublic class MainActivity extends AppCompatActivity { private Rad...原创 2019-01-09 20:23:24 · 2032 阅读 · 2 评论 -
Android第三方视频加载框架JCVideoPlayer
正好最近做项目有个需要加载网络视频技术,就找了找,碰到了这个开源的框架。主要还是网络请求下来的视频地址,然后简单的,赋一下值,非常OK。不过限自己练习用毕竟看需求的嘛,不多介绍复制用吧。先看看效果大概就是这样 网络权限: <uses-permission android:name="android.permission.INTERNET" />导入两个依赖:...原创 2019-01-19 13:56:01 · 3680 阅读 · 6 评论