![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 66
muranfei
这个作者很懒,什么都没留下…
展开
-
Android应用内悬浮按钮 可自由拖拽 自动靠边
应用内悬浮按钮原创 2023-01-13 20:25:44 · 1556 阅读 · 0 评论 -
Android应用开发之所有动画使用详解
android 动画介绍原创 2017-08-03 14:39:17 · 739 阅读 · 0 评论 -
android 动画中插值器Interpolator详解
android 插值器原创 2022-06-29 14:48:49 · 3663 阅读 · 0 评论 -
android 创建桌面快捷方式 ShortCut
android 创建桌面快捷方式 ShortCut原创 2022-06-24 16:03:53 · 3880 阅读 · 0 评论 -
Android Scrapped or attached views may not be recycled.
recyclerview刷新清空数据,未调用notifyDataSetChanged(),或者是在请求数据之前就先clear数据了,然后请求之后才notifyDataSetChanged();在删除数据后需要刷新一下adapter,即:myRecycleAdapter.notifyDataSetChanged();崩溃日志:...原创 2022-06-22 14:28:08 · 355 阅读 · 0 评论 -
android 中kotlin使用相关知识
Android Lifecycle、ViewModel和LiveDataAndroid Jetpack 组件之 ViewModel(Kotlin)Android Jetpack 架构组件最佳实践Kotlin Coroutines(协程) 完全解析(二),深入理解协程的挂起、恢复与调度开发者指南原创 2022-03-04 17:28:55 · 2413 阅读 · 0 评论 -
Kotlin-Android-Extensions:不仅仅是替代findViewById
kotlin-android-extensions是kotlin为Android专门提供的扩展插件,虽然现在其提供的功能不多,但是光是替代findViewById功能,就已经值得使用了。至于以后官方是否会提供更多的功能,让Android开发更快速便捷,就只能拭目以待了module:app -> build.gradle 添加以下代码apply plugin: ‘kotlin-android-extensions’Activity示例代码import kotlinx.android.synt原创 2022-03-02 13:58:20 · 896 阅读 · 0 评论 -
Android 图片压缩最常用的几种方法
在android开发中图片是非常容易造成OOM异常的,大部分情况下,都需要对图片进行压缩展示,本文主要是记录下在开发中常见的几种图片压缩方法一、质量压缩保持像素的前提下改变图片的位深及透明度(即:通过算法抹掉(同化)图片中的一些某点附近 相近的像素)达到降低质量压缩文件的目的。 使用场景:将图片压缩后将图片上传到服务器,或者保存到本地,根据实际需求 /** * 质量压缩 * 设置bitmap options属性,降低图片的质量,像素不会减少 * 第一个参数为需要压缩原创 2022-02-23 10:58:51 · 6536 阅读 · 0 评论 -
Android断点续传原理及实现
常见两种网络请求方式一、 HttpURLConnectionHttpURLConnection的setRequestProperty()方法,对我们要读取的字节部分进行控制,比如:···1.Range=0-100代表只读取前100个字节。2.Range=100-500代表读取从第100个字节开始,读到第500个字节为止。3.Range=100-则代表从第100个字节开始读取,一直读取到文件末尾结束。···断点续传过程1、在暂停时记录一下已经读取到的位置,在重新开始的时候利用setReque原创 2022-02-16 17:01:48 · 2665 阅读 · 0 评论 -
java 使用Try-with-resources 自动关闭资源
介绍:Try-with-resources是Java7中一个新的异常处理机制,它能够很容易地关闭在try-catch语句块中使用的资源。利用Try-Catch-Finally管理资源(旧的代码风格)下面的方法读取文件,然后用System.out打印:private static void printFile() throws IOException { InputStream input = null; try { input = new FileInputStream原创 2022-02-16 15:23:22 · 1638 阅读 · 0 评论 -
Java中 DecimalFormat 用法详解
对Java中 DecimalFormat 的所有基础用法进行了一个汇总。DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。小数部分 #代表最多有几位,0代表必须有且只能有几位.00 表示最终结果得有两位小数,没有,我给你加上;多了,就四舍五入第三个小数.## 标示最终结果最多有两位小数 一位或者没有都可以 多了同样四舍五入第三位整数部分 0 和 #当整数部分为0时 比如 0.1 #此时认为整原创 2022-01-24 16:09:41 · 4356 阅读 · 0 评论 -
自定义View实现 android圆形统计图 带动画可以点击
通常app中可能的数据展示控件有柱状图,折线图,饼状图等,如果需要一个包含多种View控件的库,那么 MPAndroidChart 是不错的选择,如果只是需要一个简单的独立的饼状图控件,希望RingView满足你的要求。控件介绍效果图如下控件功能展示一组数据 绘制圆环,展示对应模块文本信息, 点击对应模块进行放大处理实现过程绘制圆环圆环的基本绘制圆环的绘制实际就是通过先后绘制两个半径不同的圆实现,圆就是360度的扇形,canvas.drawArc提供了这个功能:public void d原创 2021-08-09 17:21:28 · 2864 阅读 · 1 评论 -
Mac中adb使用
Mac中adb使用使用mac进行开发的时候,有时候需要使用adb指令来进行一些操作,但是如果没有配置过Android环境变量,可能会出现adb: command not found的问题,查了一些资料,这里记录一下mac上配置Android环境变量的方法:一、配置adb环境变量打开mac的terminal终端,输入 cd ~/ 【进入当前用户的home目录】输入 touch .bash_profile 【如果没有.bash_profile这个文件,则创建一个这个文件】输入 open .bash_原创 2021-07-08 16:27:05 · 6487 阅读 · 0 评论 -
Android Studio 打包卡在 app:transformClassesAndResourcesWithR8ForRelease
今天升级Android Studio 到最新的3.4正式版,之前是3.2.1的版本,在编译打包的时候,debug没有问题,但是release时却卡在 app:transformClassesAndResourcesWithR8ForRelease 很长时间,一直不能生成包,有时候产生 java.lang.OutOfMemoryError: GC overhead limit exceeded 这...原创 2019-10-30 15:52:09 · 2316 阅读 · 0 评论 -
Android ANR发生的原因总结和解决办法
ANR定义ANR的全称是application not responding,是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或者Force Close。ANR发生条件首先ANR的发生是有条件限制的,分为以下...原创 2018-07-04 16:47:42 · 305 阅读 · 0 评论 -
Android Service完全解析,关于服务你所需知道的一切(上)
相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务。必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态。不过,虽然S...转载 2017-07-18 15:03:54 · 252 阅读 · 0 评论 -
AndroidUI 优化——include、merge 、ViewStub
在布局优化中,Androi的官方提到了这三种布局、、,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用;1、布局重用标签能够重用布局文件,简单的使用如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"...原创 2019-04-25 16:28:42 · 251 阅读 · 0 评论 -
android中实现文本滑动----TextView/EditText
需求中需要实现文本的横向或者纵向滑动的时候,一开始自然就想到了ScrollView和HorizontalScrollView这两个可以实现,但是ScrollView 有个特性就是它的内部只能有一个子元素,这样如果有多个控件外层还得给套一层布局包裹,想想这样不仅费事,而且还会影响绘制,布局一旦嵌套过多就会导致重复绘制,影响界面绘制效率,在产品需求中只是简单地滑动和处理点击事件的时候,就可以从控件的...原创 2019-05-09 17:28:24 · 4169 阅读 · 0 评论 -
Mac下Charles的抓包教程
1.1 Charles是在Mac下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。 Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。1.2 除了在做移动开发中调试端口外,Charles也可以用于分析第三方应用的通讯协议。配合Charles的SSL功能,Charles还可以分析Https 协议。1.3 Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然原创 2019-06-04 17:41:51 · 33674 阅读 · 2 评论 -
详解Adnroid文件存储路径
1.前言在Android 开发中,存储肯定是必不可缺少的,很多开发同学对于调用一些诸如getFilesDir,getExternalStorageDirectory方法的时候并不清楚他的数据到底存在了哪里,下面详细的介绍下不同的方法的存储位置及外部存储和内部存储概念讲解2.外部存储和内部存储内部存储概念:注意内部存储不是内存。内部存储位于系统中很特殊的一个位置,如果你想将文件存储于内部存储...原创 2019-07-10 16:07:46 · 325 阅读 · 0 评论 -
颜色不透明度16进制对照表
记录下开发中常用的不透明度对应的16进制,注意是不透明度100% — FF 完全不透明 对应透明度0% ff000000 对应纯黑色99% — FC98% — FA97% — F796% — F595% — F294% — F093% — ED92% — EB91% — E890% — E689% — E388% — E087% — DE86% — DB85...原创 2019-08-02 16:34:10 · 31821 阅读 · 0 评论 -
解决v4jar包升级版本 keyeventcompat不存在的错误
Error:(45, 31) 错误: 找不到符号符号: 类 KeyEventCompat位置: 程序包 android.support.v4.viewv4包的版本从25升到27的时候运行报错解决:KeyEventCompat类被取消了 hasNoModifiers方法已经被KeyEvent实现了版本升级前:if (KeyEventCompat.hasNoModifiers(eve...原创 2019-08-13 16:12:35 · 2737 阅读 · 1 评论 -
android7.0 通过FileProvider获取uri
android7.0以后,使用Uri.fromFile会报FileUriExposedException异常,这是因为android7.0以后执行了更加严格的文件管理,要解决这一错误需要使用7.0新添加的FileProvide类,FileProvider使用步骤:1、注册一个FileProvider在manifest里面定义一个FileProvider:<manifest> ...原创 2019-08-14 14:58:04 · 2002 阅读 · 0 评论 -
Android 自定义View (一)
先总结下自定义View的步骤:1、自定义View的属性2、在View的构造方法中获得我们自定义的属性[3、重写onMesure ]4、重写onDraw我把3用[]标出了,所以说3不一定是必须的,当然了大部分情况下还是需要重写的。1、自定义View的属性,首先在res/values/ 下建立一个attrs.xml , 在里面定义我们的属性和声明我们的整个样式。[...转载 2017-07-19 11:14:38 · 296 阅读 · 0 评论 -
android 开发 命名规范
标识符命名法标识符命名法最要有四种:1驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。2帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写3下划线命名法:单词与单词间用下划线做间隔。4匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。量的取名方式为:<scope_...原创 2017-07-19 10:54:08 · 268 阅读 · 0 评论 -
Android7.0中PopupWindow的showAsDropDown异常问题
PopupWindow经常在项目中作为重量级弹层使用,最近在项目开发中发现7.0系统的showAsDropDown异常问题,在Android7.0以前,// 定义一个PopupWindow变量,并设置宽、高PopupWindow popupWindow = new PopupWindow(mWidth, mHeight);popupWindow.setFocusable(true);/...转载 2019-04-29 17:37:03 · 712 阅读 · 0 评论 -
android------访问源码的几种方式
在开发过程中有查看源码的需要,但是在AS中 默认的对很多方法进行了保护,无法直接点击查看,我们可以通过以下方法进行查看;1.从本地sdk中查看 如上图所示,可以直接找到对应的位置,进行相应类的查找,进而可以查看源码2.从谷歌的官方文档中查看 访问地址:http://www.android-doc.com/reference/packages.html3.从开源网站中查看...原创 2018-07-13 10:57:11 · 308 阅读 · 0 评论 -
安卓常见的内存泄漏
先解释下内存泄露和内存溢出,这两个比较容易混淆的概念:内存泄露:程序在向系统申请分配内存空间后(new),在使用完毕后未释放。结果导致一直占据该内存单元,我们和程序都无法再使用该内存单元,直到程序结束,这是内存泄露。比如当一个对象已经不需要再使用了,本该被回收时,而另外一个正在使用的对象持有它的引用从而导致它不能被回收,这就导致本该被回收的对象不能被回收而停留在堆内存中,内存泄漏就产生了。...原创 2018-07-05 17:31:45 · 228 阅读 · 0 评论 -
HandlerThread的使用以及原理
官方的描述:HandlerThread 是一个包含 Looper 的 Thread,我们可以直接使用这个 Looper 创建 Handler。HandlerThread 的使用场景我们知道,HandlerThread 所做的就是在新开的子线程中创建了 Looper,那它的使用场景就是 Thread + Looper 使用场景的结合,即:在子线程中执行耗时的、可能有多个任务的操作。 比...转载 2018-07-05 17:06:08 · 859 阅读 · 0 评论 -
Handler、Looper消息队列模型,各部分的作用
我们都知道在UI线程中不能进行耗时操作,例如数据读写、网络请求。这个时候,我们就会开始依赖Handler。我们在子线程进行耗时操作后,将请求结果通过Handler的sendMessge**() 方法发送出去,在主线程中通过Handler的handleMessage 方法处理请求结果,进行UI的更新。Android应用程序是通过消息来驱动的,Android某种意义上也可以说成是一个以消息驱动的系...原创 2018-07-05 16:24:39 · 758 阅读 · 0 评论 -
MVC与MVP,MVVM架构特点-android
MVC设计架构 用一种业务逻辑、数据、界面显示分离的方法组织代码,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。Android中的MVCAndroid中界面部分也采用了当前比较流行的MVC框架,在Android中:视图层(Vie...原创 2018-07-03 14:04:37 · 262 阅读 · 0 评论 -
Android IntentService详解
在Service使用时,为了避免出现ANR,对耗时的操作都在子线程进行处理;Android 自身封装了一个IntentService类,该类已经帮我们创建好了线程供我们使用。概括:IntentService是Service的子类,根据需要处理异步请求(以intent表示)。客户端通过调用startService(Intent) 发送请求,该Service根据需要启动,使用工作线程处理依次...原创 2018-07-02 15:51:36 · 926 阅读 · 0 评论 -
android中Intent传值与Bundle传值详解
本篇文章是 对android中Intent传值与Bundle传值的区别进行了详细的分析介绍, 概念介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动 作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的...原创 2018-07-02 14:23:49 · 2741 阅读 · 1 评论 -
Activity的生命周期 总结
Activity是由Activity栈进行管理,当来到一个新的Activity后,此Activity将被加入到Activity栈顶,之前的Activity位于此Activity底部。Acitivity一般意义上有四种状态:当Activity位于栈顶时,此时正好处于屏幕最前方,此时处于运行状态;当Activity失去了焦点但仍然对用于可见(如栈顶的Activity是透明的或者栈顶Activi...原创 2018-06-29 17:51:41 · 618 阅读 · 0 评论 -
Android ANR发生的原因总结和解决办法
ANR的全称是application not responding,是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或者Force Close。首先ANR的发生是有条件限制的,分为以下三点:只有主线程才会产生ANR...原创 2018-06-29 17:07:20 · 5384 阅读 · 0 评论 -
Android----Webview 详解
WebView详解在安卓开发中经常会内置Web网页,都是通过webview加载实现的,下面来详细介绍下webview的常见用法。https://www.jianshu.com/p/1b8779401db7https://blog.csdn.net/carson_ho/article/details/52693322https://blog.csdn.net/carson_ho/ar...原创 2018-07-31 16:12:24 · 219 阅读 · 0 评论 -
Android Studio 中的 gradle 介绍及build.gradle配置文件详解
不同于 Eclispse,Android Studio 是采用 Gradle 来构建项目的,Gradle 是一个非常先进强大的项目构建工具,它使用了一种基于 Groovy 领域的特定语言(DSL)来声明项目设置,摒弃了基于 XML(如 Ant 和 Maven)的各种繁琐的配置,今天我们就来一起探讨 Android Studio 中强大的项目构建工具 Gradle###一.gradle 是什么?...原创 2018-08-13 16:08:20 · 31889 阅读 · 0 评论 -
解决 :android studio 提交代码到git/github失败 Could not read from remote repository
在第一次把项目提交到github或者复制原来的项目进行提交的时候会出现 Could not read from remote repository这个错误;但是打开github的时候,仓库已经创建,只是代码未能上传成功; 解决步骤:前提:已经将该项目设为git 仓库。这时,打开该项目目录–>.git文件夹–>用notepad打开config文件,问题就在url上:...转载 2018-09-04 14:53:59 · 1182 阅读 · 0 评论 -
Android studio ---debug模式下打出release签名包
在日常开发中微信支付,分享,百度地图等第三方的功能都需要在release包下功能才能正常使用。为了在直接运行时,可以直接使用这些功能,可以通过配置签名文件来实现;此篇文章主要是写下在android studio中签名文件的配置;本地签名配置方法项目 - 右键 - Open-Moudle-Settings 或者点击顶部快捷按钮,切换到签名配置页面,如下图2. 点击左下角+号 添加签名,...原创 2019-04-16 19:56:30 · 3419 阅读 · 0 评论 -
解决android中Error:Module not specified
http://www.pianshen.com/article/112075099/转载 2019-04-01 15:52:49 · 3493 阅读 · 0 评论