android
文章平均质量分 59
僅此而已c
合抱之木,生於毫末;九層之台,起於累土;千里之行,始於足下.
展开
-
RecyclerView中刷新数据并保持其滚动位置
直接上代码:private int lastPosition = 0;private int lastOffset = 0;rlv_activity_student_list.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) { super原创 2022-03-01 10:28:13 · 2701 阅读 · 1 评论 -
RecyclerView记录其滚动位置,刷新时此条数据置顶
// 定义一个记录位置的变量private int atPosition = 0;// 在数据加载完成后进行操作(此方法放在合适的位置)// 在列表数据加完完成后,执行此方法,对数据进行操作 mRecyclerView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() .原创 2022-03-01 10:06:41 · 533 阅读 · 0 评论 -
兼容Android11的手机拍照上传图片和相册选择图片功能(可直接用)
//需要的权限数组 读/写/相机private static String[] PERMISSIONS_STORAGE = {android.Manifest.permission.READ_EXTERNAL_STORAGE, android.Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA};// 头像private ImageView imageView;private String imgUrl;.原创 2022-02-23 10:44:00 · 3818 阅读 · 0 评论 -
Android布局之GridLayout的使用总结
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分原创 2021-12-31 15:06:09 · 10061 阅读 · 0 评论 -
Android 11-第三方应用无法拉起微信适配
Android 11 加强了隐私保护策略,引入了大量变更和限制,其中一个重要变更 ——软件包可见性,将会导致第三方应用通过微信OpenSDK的接口无法正常拉起微信,从而无法使用微信的全部功能,包括但不限于分享消息到微信、拉起小程序等功能。特别需要注意的是,Android11的该变更只会影响到升级targetSdkVersion=30的应用,未升级的应用暂不受影响。适配方案根据Android官方给出的适配方案,在主工程的AndroidManifest.xml中增加<queries&g...原创 2021-08-06 10:18:27 · 879 阅读 · 0 评论 -
Android开发,多线程和线程池的介绍与总结
一、基础介绍1)线程概念线程在Android中是一个很重要的概念,从用途上来说,线程分为主线程和子 线程,主线程主要处理和界面UI相关的事,而子线程则往往用于执行耗时操作。由于Android的特性,如果在主线程中执行耗时操作那么就会导致程序无法及时响应,因此耗时操作必须放在子线程中去执行。除了主线程之外的线程都是子线程。2)扮演线程的角色有哪些除了普通线程Thread之外,在Android扮演线程角色的还有很多,比如AsyncTask和IntentService,同时HandlerThrea原创 2021-03-31 11:34:03 · 435 阅读 · 0 评论 -
Android进程间通信的几种方式
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。原创 2021-03-31 11:04:21 · 1097 阅读 · 0 评论 -
Android Service保活的几种方法总结
保活Service我们需要做什么:1.在应用被关闭后保活(最难)2.在内用占用过大,系统自动释放内存时保活(优先杀死占用较高的Service)3.重启手机后自动开启Service4.手机息屏后不被释放内存5.手动清理内存时保活首先介绍一下Service的等级:一、前台进程二、可见进程三、服务进程四、后台进程五、空进程 ---关闭应用后,没有清理缓存所以为了提高优先级我们可以使用startForeground()方法将Service设置为前台进程。一、在Andro.原创 2021-03-31 10:39:40 · 2506 阅读 · 1 评论 -
Flutter学习之路(二)
之前的文章记录了Flutter开发的一小部分基础代码,今天还是要继续记录一个常用的小功能,那就是底部切换栏。做过移动开发的开发者都知道,底部切换栏是大多数应用的必备功能。话不多说,老规矩,直接按步骤上截图,上代码:首先在我们自己的项目中的lib文件下建立几个需要切换的.dart文件,我自己是5个文件,其中4个是对应底部切换栏的4个按钮(HomePage是第一个页面、MsgPage消息页面、CartPage购物车页面、MinePage个人中心页面),还有一个就是承载着4个页面的文件MainPage,如下图原创 2021-03-11 11:34:28 · 198 阅读 · 1 评论 -
Android开源库V - Layout:淘宝、天猫都在用的UI框架,赶紧用起来吧!
前言V- Layout 是阿里出品的基础 UI 框架,用于快速实现页面的复杂布局,在手机天猫 Android版 内广泛使用让人激动的是,在上个月V- Layout终于在Github上开源! Github - alibaba - vlayout在五一假期我对V- Layout进行了详细分析,我将献上一份 V- Layout的使用攻略转载 2017-05-16 17:16:11 · 483 阅读 · 0 评论 -
Android实现APP自动更新
当有更新时,会弹出一个提示框,点击确定,则在通知栏创建一个进度条进行下载,点击取消,则取消更新。1.创建布局文件notification_item.xml,用于在通知栏生成一个进度条和下载图标。relativelayout android:layout_height="fill_parent"android:layout_width="fill_parent"android原创 2017-05-22 13:25:13 · 911 阅读 · 0 评论 -
强大的Android控件之RecyclerView体验艺术般的控件
概述RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用。 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView、GridView。那么有了ListView、GridView为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构原创 2017-05-22 14:36:31 · 476 阅读 · 0 评论 -
Android图片加载框架Glide
在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech。这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。它的成功让我非常感兴趣。我花了一整晚的时间把玩,决定分享一些自己的经验。在开始之前我想说,Glide和Picasso有90%的相似度,准确的说,就是Picasso的克隆版本。但是在细原创 2017-06-27 09:34:46 · 340 阅读 · 0 评论 -
Android常用的框架
1、volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载; (2) 网络请求的排序(scheduling) (3) 网络请求的优先级处理 (4) 缓存 (5) 多级别取消请求 (6) 和Activity和生命周期的联动(Activity结束时同时取消所有网原创 2017-07-28 16:50:45 · 341 阅读 · 0 评论 -
Android 4.4前后版本读取图库图片和拍照完美解决方案
4.3或以下,选了图片之后,根据Uri来做处理,很多帖子都有了,我就不详细说了.主要是4.4,如果使用上面pick的原生方法来选图,返回的uri还是正常的,但如果用ACTION_GET_CONTENT的方法,返回的uri跟4.3是完全不一样的,4.3返回的是带文件路径的,而4.4返回的却是content://com.android.providers.media.documents/documen转载 2018-01-22 17:19:40 · 970 阅读 · 0 评论 -
android-percent-support-extend
对于android-percent-support的扩展库。目前支持:不改变原有库的用法 添加了PercentLinearLayout 支持宽度高度百分比设置值 支持margin百分比设置值 支持padding百分比设置值 支持minWidth , maxWidth , minHeight , maxHeight百分比设置值 支持TextView、Button、Edi...转载 2018-09-13 22:01:04 · 290 阅读 · 0 评论 -
Android性能优化全方面解析
内存优化关于性能优化我们可以不知道其他的,但一定要知道内存优化。因为内存泄漏可以Android的常客。那么什么是内存泄漏呢?内存不在GC的掌控范围之内了。那么Java的GC内存回收机制是什么?某对象不在有任何引用的时候才会进行回收。那么GC回收机制的原理是什么?又或者说可以作为GC Root引用点的是啥?或许有人听不懂我在讲啥。我们先来看张图。 当我们向上寻找,一直寻找到GC转载 2017-05-16 17:08:54 · 310 阅读 · 0 评论 -
Android 6.0: 动态权限管理的解决方案
Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用户体验, 同时也为程序员带来新的负担. 动态权限管理就是这样, 一方面让用户更加容易的控制自己的隐私, 一方面需要重新适配应用权限. 时代总是不断发展, 程序总是以人为本, 让我们为应用添加动态权限管理吧! 这里提供了一个非常不错的解决方案, 提供源码, 项目可以直接使用.Android系统包含默认的授原创 2017-05-16 16:53:22 · 212 阅读 · 0 评论 -
java的各种排序算法的分析及实现
一、插入排序•思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置,直到全部插入排序完为止。•关键问题:在前面已经排好序的序列中找到合适的插入位置。•方法:–直接插入排序–二分插入排序–希尔排序①直接插入排序(从后向前找到合适位置后插入) 1、基本思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经原创 2016-07-15 14:24:10 · 1443 阅读 · 0 评论 -
多用户登录限制
1、设计场景 1)同一时刻不允许某个用户多地登录 2)用户已在A处登录,现在从B处登录是允许的,但会把A处挤掉(考虑到用户在A处登录后因某些情况跑到了B处,但还想继续之前的工作,所以需要登录系统) 3)B处挤掉A后,A再做其它操作的时候系统会给出提示,该用户在别处登录,如不是本人操作可能密码泄漏,请修改密码。2、思路导图 每个用户登录的时候,通常我们原创 2016-11-09 16:03:53 · 441 阅读 · 0 评论 -
android基础题型
android基础1.数据库的操作类型有哪些,如何导入外部数据库?把原数据库包括在项目源码的 res/rawAndroid系统下数据库应该存放在 /data/data/com..(package name)/ 目录下,所以我们需要做的是把已有的数据库传入那个目录下.操作方法是用FileInputStream读取原数据库,再用FileOutputStream把读取原创 2016-11-14 10:53:22 · 335 阅读 · 0 评论 -
android 常用时间格式转换代码
/** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-d原创 2016-12-07 10:23:31 · 4788 阅读 · 0 评论 -
Android笔记:invalidate()和postInvalidate() 的区别及使用
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 invalidate()是用来刷新View的,必须是在UI线程中进行工作。比如在修改某个view的显示时,调用invalidate()才能看到重新绘制的界面。invalidate()的原创 2016-12-09 14:15:09 · 314 阅读 · 0 评论 -
android中的surfaceSurface、SurfaceHolder及SurfaceHolder.Callback
一、Surface Surface在SDK的文档中的描述是这样的:Handle onto a raw buffer that is being managed by the screen compositor,Android中的Surface就是一个用来画图形(graphics)或图像(image)的地方,对于View及其子类,都是画在Surface上,各Surface对象通过Sur原创 2016-11-28 09:04:29 · 334 阅读 · 0 评论 -
Android中使用Camera类编写手机拍照App的实例教程
Camera是Android摄像头硬件的相机类,位于硬件包"android.hardware.Camera"下。它主要用于摄像头捕获图片、启动/停止预览图片、拍照、获取视频帧等,它是设备本地的服务,负责管理设备上的摄像头硬件。Camera既然用于管理设备上的摄像头硬件,那么它也为开发人员提供了相应的方法,并且这些方法大部分都是native的,用C++在底层实现,下面简单介绍一下Camera原创 2022-02-23 10:50:58 · 6240 阅读 · 1 评论 -
Android基础面试题
第一部分(Part1)Android基础测试 共22题(全部单选,每题2分,总分44分 ) 1、关于在Activity生命周期中的各个方法在不同状态下的调用顺序的说法,错误的是( d) A 一个Activity从被创建到进入运行态,需要依次调用onCreate() -> onStart() -> onResume()。 B 点击Home按钮后,系统回到桌面,然后我们再找到这个应用并打开原创 2016-11-28 14:06:32 · 3037 阅读 · 0 评论 -
应用接入微信登录
接入微信登录:1、准备工作1.在微信开放平台https://open.weixin.qq.com/注册成为开发者。2.在“管理中心”中创建一个移动应用,需“应用名称、简介、及28*28和108*108的PNG图片各一张,且大小不超过300k”,点击下一步,需“应用官网地址,应用签名及包名”等信息,然后即可提交审核。 说明: 应用签名:可在微信开发平台的资源中心》》资原创 2016-12-26 13:05:55 · 823 阅读 · 0 评论 -
android中完全退出当前应用程序的四种方法
Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A。在B中如何关闭整个Android应用程序呢?本人总结了几种比较简单的实现方法。1. Dalvik VM的本地方法 android.os.Process.killProcess(android.os.Process.myPid()) //获取PID S原创 2016-12-28 10:20:01 · 352 阅读 · 0 评论 -
Android 百分比布局库(percent-support-lib) 解析与扩展
一、概述周末游戏打得过猛,于是周天熬夜码代码,周一早上浑浑噩噩的发现android-percent-support-lib-sample这个项目,Google终于开始支持百分比的方式布局了,瞬间脉动回来,啊咧咧。对于这种历史性的时刻,不出篇博客难以表达我内心的激动。还记得不久前,发了篇博客:Android 屏幕适配方案,这篇博客以Web页面设计引出一种适配方案,最终的目的就是可以通原创 2016-12-27 11:13:41 · 454 阅读 · 0 评论 -
Android自定义View-水波纹progressbar
首先来看一看效果图: 先简要说一下这里需要涉及到的知识点:2D绘图基础path贝塞尔二阶曲线ValueAnimatorPorterDuffXfermode参考的文章:Path从懵逼到精通(2)——贝塞尔曲线绘制思路:绘制两段二阶贝塞尔曲线围成的波浪封闭图形,一段波浪的长度为屏幕宽度。水平移动绘制好的图形,形成波浪滚动的效果,并不断循原创 2017-05-12 11:09:03 · 743 阅读 · 0 评论 -
Android 开发小工具之:Custom Tabs
上周 Android Support 库偷偷摸摸更新了,里面多了几个小工具。今天来看看其中之一: Custom Tabs . 注意这个指的是 Chrome 浏览器的自定义多窗口 的意思而不是指 Android Tab 页。Chrome 浏览器现在已经成为 Android 原生系统的默认浏览器了。如果在您的应用中需要打开网页内容,之前的做法要么使用 WebView 或者 直接打开转载 2017-05-12 16:40:21 · 1115 阅读 · 0 评论 -
[Android开发]Android更新UI的五种方式
Android更新UI的五种方式: 1.handler.post 2.activity.runOnUiThread 3.view.post 4.handler+Thread 5.AsyncTask下面来看下以下的例子import org.apache.http.HttpResponse;import org.apache.http.client.HttpClien原创 2017-05-04 15:39:10 · 361 阅读 · 0 评论 -
Android动画全解
Android动画全解 在Android开发中经常会碰到动画,看到别的应用有很酷炫的应用时,总是想怎么去实现,但是每次都是发现感觉是知道怎么做的,实际做起来还是无从下手的感觉,究其原因还是Android动画方面的知识不全面,这几天利用空闲时间研究了下Android动画知识,当作学习日记,大家也好有所借鉴。Android主要分三类动画:Tween Animation、Frame Animat原创 2017-05-04 15:43:04 · 236 阅读 · 0 评论 -
六款值得推荐的Android开源框架简介
1、volley 项目地址 https://github.com/smanikandan14/Volley-demoJSON,图像等的异步下载; 网络请求的排序(scheduling) 网络请求的优先级处理 缓存 多级别取消请求 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求) 2、android-async-http 项目地址:https原创 2017-05-04 15:52:38 · 332 阅读 · 0 评论 -
android 6.0权限判断 音频 拍照 相册
/*------------------------------------------打开音频权限------------------------------------------------*/ if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(Context,android.Mani原创 2017-05-13 10:38:10 · 1563 阅读 · 0 评论 -
adroid解析XML三种方式
废话少说,直接上代码:Pull 解析 跳至 [1] [2] [3] [全屏预览]?123456789101112131415161718192021222324原创 2016-07-14 16:14:37 · 651 阅读 · 0 评论