android
文章平均质量分 72
专注移动开发技术
这个作者很懒,什么都没留下…
展开
-
源码角度认识ImageView的ScaleType
做Android开发的童靴们肯定对系统自带的控件使用的都非常熟悉,比如Button、TextView、ImageView等。如果你问我具体使用,我会给说:拿ImageView来说吧,首先创建一个新的项目,在项目布局文件中应用ImageView控件,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 <?xml version="1.0" encoding=转载 2020-11-26 14:47:20 · 219 阅读 · 0 评论 -
Android中的URI 和Uri
一、URI与Uri大家可能经常会看到在开发时,怎么有的时候是URI,有的时候是Uri,这是怎么回事?名称如此相像的两个类是有什么区别和联系?1.所属的包不同。URI位置在java.net.URI,显然是Java提供的一个类。而Uri位置在android.net.Uri,是由Android提供的一个类。所以初步可以判断,Uri是URI的“扩展”以适应Android系统的需要。2.作用的不同。URI类...转载 2018-04-21 15:11:17 · 15676 阅读 · 0 评论 -
Android的5个进程等级
1、foreground process 正处于activity resume状态 正处于bound服务交互的状态 正处于服务在前台运行的状态(StartForeGround()被调用) Service生命周期正在被执行(onCreate(),onStart(),onDestroy()) BroadcastReceiver正在执行onReceive()方法 杀死...原创 2018-03-29 22:51:55 · 167 阅读 · 0 评论 -
Android调试时部分华为手机不打印logcat的解决办法
最近在写代码时都是使用华为的手机作为测试机,发现一个问题,手机连接电脑上没有logcat打印,一开始以为是代码的问题,但是换了别的手机是可以的。去查了一下原来是华为的手机都是这样的情况,原因是国内的部分厂商定制的手机对于应用中的 Log 日志默认做了打印限制,需要手动设置才能打印出特殊级别的日志。目前发现有魅族和华为手机存在这样的问题,并且设置方式有所不同,遂纪录一下,以免后续再遇到这样的问题又要...原创 2018-03-22 15:03:05 · 569 阅读 · 1 评论 -
Android ANR是什么及相应的解决方法
1、什么是 ANR?ANR:Application Not Responding,即应用无响应2、ANR有哪些类型? ANR一般有三种类型: 1. KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应 2. BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成 ...原创 2018-03-16 10:56:49 · 485 阅读 · 0 评论 -
Activiy或者Fragment 销毁时,Dialog 的正确Dismiss方式和测试方法
场景:Activity或者Fragment 中弹出一个 Dialog,几秒后会 dismiss。平时测试没遇到崩溃,但是崩溃平台却捕捉到如下错误java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{41ef97f8 V.E..... R.....ID 0,0-4原创 2018-01-17 17:12:58 · 5443 阅读 · 2 评论 -
android中获取view在布局中的高度和宽度
有时需要在 onCreate() 方法中获取某个 View 组件的宽度和高度,而直接调用 getWidth()、getHeight()、getMeasuredWidth()、getMeasuredHeight() 方法只会得到 0。实现方法一、使用 View.measure 测量 View该方法测量的宽度和高度可能与视图绘制完成后的真实的宽度和高度不一致。int width = View.原创 2017-11-29 17:44:49 · 4759 阅读 · 0 评论 -
WindowManager对于窗口的管理以及悬浮窗的实现
WindowManagerWindowManager是窗口管理器, 所有显示窗口都可以通过它来控制WindowManager.addView(view, layoutParams)添加一个View到窗口中WindowManager.updateView(view, layoutParams)更新窗口中的View属性WindowManager.remove原创 2017-11-02 21:51:50 · 8976 阅读 · 2 评论 -
Android 沉浸式状态栏攻略 让你的状态栏变色吧
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/48649563; 本文出自:【张鸿洋的博客】一、概述近期注意到QQ新版使用了沉浸式状态栏,ok,先声明一下:本篇博客效果下图:关于这个状态栏变色到底叫「Immersive Mode」/「Translucent Bars」有兴趣可以去 为转载 2017-10-30 23:42:19 · 528 阅读 · 0 评论 -
android 自定义Uri外部启动APP 以及启动通知栏
一、自定义Uri与外部启动1、概述上篇我们讲了Uri的结构,在这篇中,我们将看看如何利用自定义的URI来启动我的的应用。 有时,我们要通过外部Uri链接来启动我们的应用,主要是通过Uri隐式Intent匹配的方式:[java] view plain copyUri uri = Uri.parse("qijian://test.uri.activity?action=1"); Intent int...转载 2018-04-21 15:16:41 · 1770 阅读 · 0 评论 -
Android中Uri 和Path之间的相互转化
Android Uri to Path现在遇到的常规Uri有两种:媒体文件的Uri是content://, 表示这是一个数据库数据。去数据库查询正常返回。其他的文件Uri是file://, 表示这个是一个文件。这个uri是通过Uri.fromFile(File file)方法生成。Media Uri To Path在我简书中有一篇文章Android Uri to Path当中介绍了如何把从相册返...转载 2018-04-21 15:21:27 · 18984 阅读 · 0 评论 -
X5 浏览器内核调研报告
关于这份调研报告,不是从技术角度深入探索,重点是从产品本身分析,通俗易懂才是重点。主要是为了锻炼平时做技术调研和竞品分析的能力,以及业务拓展的技术储备。内容有点多,下面 **X5 **内核调研报告将分为三个环节:Why - What - How描述。按照经典的 2W1H 的策略描述WHY一、Android 端为什么需要考虑浏览器内核问题 ?**一言以蔽之:你...转载 2019-07-16 10:42:24 · 1580 阅读 · 0 评论 -
RecyclerView 原理深入理解
lyldalek的博客地址:https://blog.csdn.net/weixin_43130724/ 前言 /以后会尽量写非源码的东西,因为过一段时间之后,发现自己看自己的文章都费劲,而且,源码大部分是在分析方法的调用链,意义不大,需要多写写自己的体悟才行。如果有时候必须要写,也要简化调用链的分析,提供类图,写重点和结论。本文的思路与结论是基于参考...转载 2019-06-27 10:15:24 · 8384 阅读 · 3 评论 -
深入理解 Android 中的各种 Context
转自:https://juejin.im/post/5c1fab7d5188254eb05fbe48Context 家族Context 本身是一个抽象类,主要实现类为 ContextImpl,另外有子类 ContextWrapper 和 ContextThemeWrapper,这两个子类都是 Context 的代理类,主要区别是 ContextThemeWrapper 有自己的主题资源。它...转载 2019-04-01 17:49:48 · 475 阅读 · 0 评论 -
应用接入支付宝的架构建议
架构建议:为了保证交易安全,支付宝采用了一系列的安全手段: 采用HTTPS协议传输交易数据,防止数据被截获,解密。 采用RSA非对称密钥,明确交易双方的身份,保证交易主体的正确性和唯一性 ...原创 2019-03-04 10:40:55 · 256 阅读 · 0 评论 -
Glide加载视频缩略图、gif图片
1: 加载本地视频缩略图,一般是指加载视频的第一帧画面的缩略图 Glide.with(context).load(videoFileUrl).diskCacheStrategy(DiskCacheStrategy.RESULT) .crossFade().centerCrop().placeholder(placeHolder).error(plac...原创 2018-08-09 10:13:13 · 10493 阅读 · 2 评论 -
RecyclerView 实现瀑布流的正确姿势
首先来看一下瀑布流效果:加载的数据根据自己需求自己定义。来说一下具体实现:private RecyclerView rlv;private FlashApapter mAdapter;//设置layoutManagerStaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(2, Stagger...原创 2018-07-26 21:47:58 · 17687 阅读 · 1 评论 -
Android权限适配解决方案
一、权限申请的原理:1.Android6.0之后运行时权限策略变化从Android6.0(API23)开始,对系统权限做了很大的改变,在之前用户安装app前,只是把app需要的使用的权限列出来告知用户一下,app安装后都可以访问这些权限。从6.0开始,一些敏感权限需要在使用是动态申请,并且用户可以选择拒绝授权访问这些权利,已授予过的权限,用户也可以去app设置界面去关闭授权。这对用户来说提...原创 2018-07-16 21:51:15 · 1043 阅读 · 1 评论 -
Android apk打包之生成key hash 和 签名证书sha1
第一步 安装sshopenhttp://www.xpgod.com/soft/20520.html下载并解压就可以了 如果上面连接不可用可以到.............点击下载 下载 需要csdn 1积分 因为我没找到怎么免费上传第二步 到你的签名文件目录下调出git命令界面 Git Bash Here输入命令keytool -exportcert -a...转载 2018-07-16 20:03:15 · 2242 阅读 · 0 评论 -
如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
英文原文:Picking your compileSdkVersion, minSdkVersion, and targetSdkVersion作者:Ian Lake,Google Android 推广工程师;翻译:韩国恺。当你发布一个应用之后,(取决于具体的发布时间)可能没过几个月 Android 系统就发布了一个新版本。这对你的应用意味着什么,所有东西都不能用了?转载 2017-09-20 20:21:01 · 265 阅读 · 0 评论 -
2017年Android百大框架排行榜
1榜单介绍排行榜包括四大类:单一框架:仅提供路由、网络层、UI层、通信层或其他单一功能的框架混合开发框架:提供开发hybrid app、h5与webview结合能力、web app能力的框架。企业级开源项目:可以独立运行的app,有极高的学习价值、思路借鉴意义书籍类开源项目:类似Open-sourc转载 2017-08-19 09:21:37 · 385 阅读 · 0 评论 -
android性能优化之布局优化
1、首先使用工具查看布局:Hierarchy Viewer提供了一个可视化的界面来观测布局的层级, 让我们可以优化布局层级, 删除多余的不必要的View层级, 提升布局速度.应用Hierarchy Viewer目前Hierarchy Viewer只能在root过的机器才能使用. 主要是在没有root过的机器中view server这个服务是没有开启的. Hierarchy原创 2017-08-02 18:33:43 · 346 阅读 · 0 评论 -
android处理运行时的变更(较大数据的保存)
有些设备配置可能会在运行时发生变化(例如屏幕方向、键盘可用性及语言)。 发生这种变化时,Android 会重启正在运行的 Activity(先后调用 onDestroy() 和 onCreate())。重启行为旨在通过利用与新设备配置匹配的备用资源自动重新加载您的应用,来帮助它适应新配置。要妥善处理重启行为,Activity 必须通过常规的Activity 生命周期恢复其以前的状态,在 A原创 2016-10-10 15:48:25 · 471 阅读 · 0 评论 -
android重新创建Activity时状态的保存和恢复
在有些情况下,您的Activity会因正常应用行为而销毁,比如当用户按 返回按钮或您的Activity通过调用 finish()示意自己的销毁。 如果Activity当前被停止或长期未使用,或者前台Activity需要更多资源以致系统必须关闭后台进程恢复内存,系统也可能会销毁Activity。当您的Activity因用户按了返回 或Activity自行完成而被销毁时,系统的 Activ原创 2016-10-10 14:16:47 · 3036 阅读 · 0 评论 -
android提供外部资源的规则和注意事项
您应该始终外部化应用资源,例如图像和代码中的字符串,这样有利于您单独维护这些资源。 此外,您还应该为特定设备配置提供备用资源,方法是将它们分组到专门命名的资源目录中。 在运行时,Android 会根据当前配置使用适当的资源。例如,您可能需要根据屏幕尺寸提供不同的 UI 布局,或者根据语言设置提供不同的字符串。外部化应用资源后,即可使用在项目 R 类中生成的资源 ID 访问这些资源。有关如何原创 2016-10-10 11:16:01 · 1128 阅读 · 0 评论 -
初识自定义View-View的弹性滑动
一、scrollTo与ScrollByView提供了专门的方法用于实现滑动效果,分别为scrollTo与scrollBy。先来看看它们的源码:/** * Set the scrolled position of your view. This will cause a call to * {@link #onScrollChanged(int, int, int, int)} an转载 2016-09-13 11:43:09 · 657 阅读 · 0 评论 -
Dialog、Toast、Snackbar的区别和使用
今天给大家带来一篇简单易懂的微技巧文章,并没有什么高深的技术点,但重点仍然是在细节,相信还是可以给不少朋友带来帮助的。Dialog和Toast所有人肯定都不会陌生的,这个我们平时用的实在是太多了。而Snackbar是Design Support库中提供的新控件,有些朋友可能已经用过了,有些朋友可能还没去了解。但是你真的知道什么时候应该使用Dialog,什么时候应该使用Toast,什么时候应转载 2016-08-11 09:23:39 · 5695 阅读 · 1 评论 -
史上最全Fragment介绍,包括fragment的定义,生命周期,用法
一、为什么要使用Fragment 1、当我们需要动态的多界面切换的时候,就需要将UI元素和Activity融合成一个模块。在2.3中我们一般通过各种Activity中进行跳转来实现多界面的跳转和单个界面动态改变。在4.0或以上系统中就可以使用新的特性来方便的达到这个效果--Fragment类。Fragment类似一个嵌套Activity,可以定义自己的layout和自己的生命周期。2、原创 2016-08-06 23:06:47 · 5304 阅读 · 0 评论 -
android中ExpandableListView的使用
ExpandableListVivew是ListView的子类,它在普通ListView的基础上进行了扩展,它把应用中的列表项分为几组,每组里 又可包含多个列表项。ExpandableListVivew的用法与普通ListView的用法非常相似,只是ExpandableListVivew 显示的列表项应该由ExpandableAdapter提供。 实现ExpandableAdapter的三原创 2016-07-21 14:38:56 · 361 阅读 · 0 评论 -
android 调用系统相机或者系统相册功能时,onActivityResult方法不执行问题的解决过程
我的情况:我自定义了一个Activity继承自FragementActivity,在里边使用一下代码Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent,4050);启动系统相机功能。但是,当返回当前Activity时,系统并没有调用onActiv原创 2016-07-31 17:20:17 · 3473 阅读 · 0 评论 -
android 打开本地相册,并将选择的照片显示到当前界面
import android.app.Activity;import android.content.Intent;import android.database.Cursor;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Bundle;import androi原创 2016-07-31 21:41:15 · 10993 阅读 · 0 评论 -
android调用系统相机功能,并将照片保存到本地
在多媒体应用制作中,我们经常会用到camera,那么到底如何调用系统的camera呢:1.调用相机: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 1);只需要把这两句代码写进button的onclick事转载 2016-07-31 17:40:15 · 747 阅读 · 0 评论 -
Android相机调用后直接闪退的问题
现象:1、在性能比较好的Android手机,比如nexus 6,小米4等手机上拍完照,并截图后,均能够正常更换头像。2、在genymotion的模拟器上的sumsung galaxy s3以及nexus 6上拍照截图均正常。3、小米2/2s的Android4.4.4上时而正常,时而发生闪退现象。4、试用过程中有其他同事反映拍照功能异常。归类:归类为手转载 2017-05-18 09:46:59 · 4545 阅读 · 0 评论 -
Android防止内存泄漏的八种方法(下)
在上一篇Android内存泄漏的八种可能(上)中,我们讨论了八种容易发生内存泄漏的代码。其中,尤其严重的是泄漏Activity对象,因为它占用了大量系统内存。不管内存泄漏的代码表现形式如何,其核心问题在于:在Activity生命周期之外仍持有其引用。幸运的是,一旦泄漏发生且被定位到了,修复方法是相当简单的。Static Actitivities这种泄漏p转载 2017-05-26 11:29:22 · 356 阅读 · 0 评论 -
Android内存泄漏的八种可能(上)
Java是垃圾回收语言的一种,其优点是开发者无需特意管理内存分配,降低了应用由于局部故障(segmentation fault)导致崩溃,同时防止未释放的内存把堆栈(heap)挤爆的可能,所以写出来的代码更为安全。不幸的是,在Java中仍存在很多容易导致内存泄漏的逻辑可能(logical leak)。如果不小心,你的Android应用很容易浪费掉未释放的内存,最终导致内存用光的错误抛出(o转载 2017-05-26 11:21:24 · 515 阅读 · 0 评论 -
android color Material Design
ColorColor in material design is inspired by bold hues juxtaposed with muted environments, deep shadows, and bright highlights.ContentsColor paletteColor原创 2016-11-23 10:36:18 · 1093 阅读 · 0 评论 -
最完整的获取android手机图片并显示到控件的解决方案
手机上的本地图片资源分为两种,一种是从本地相册获取,一种是从本地相机拍照获取。1、获取图片很简单,调用系统提供的Intent对象,启动本地相册和照相机功能。代码如下: //开始拍照 private void startCamera() { try{ Intent intent = new Intent(MediaStore.ACTION_原创 2016-10-21 10:53:06 · 4475 阅读 · 1 评论 -
截取手机屏幕中某个View的图像,并以图片形式保存到本地相册
截取屏幕中WebView的图片。 //截取你的WebView图片 private Bitmap takeWebViewShot(Activity activity){ int width = webView.getMeasuredWidth(); int height = webView.getMeasuredHeight(); Bitm原创 2016-11-08 12:12:17 · 856 阅读 · 0 评论 -
android之用户头像的获取和显示
一,概述本篇博客总结一下自己在开发过程中应用到的一些知识,在本篇博客中带领大家完成用户头像选择或者拍照上传,并对图片进行大小的压缩,和形状的控制,可以将用户选择到的图片裁剪成圆形上传。ok,我们开始写一个小的demo,完成用户圆形头像的选取,在写即将实现的效果之前我们看一下即将要实现的效果图二,实现代码manifest中添加权限:ac转载 2016-09-27 11:38:33 · 6092 阅读 · 2 评论 -
ListView 的属性介绍
<?xml version="1.0" encoding="utf-8"?>02 <ListView xmlns:android="http://schemas.android.com/apk/res/android"03 android:id="@+id/listview"原创 2016-07-26 16:59:56 · 329 阅读 · 0 评论