android基础
文章平均质量分 93
majihua817
这个作者很懒,什么都没留下…
展开
-
Android强行进阶—按键事件&焦点事件攻略
前言对于Android手机APP普通开发者来说,KeyEvent接触相对较少,相反接触较多的应该是TouchEvent。而Android TV开发者对KeyEvent的接触就非常频繁。这也是手机应用和TV应用的主要区别:一个主要响应手指触摸事件,一个响应遥控器按键事件。本文主要基于Android 9.0的源码,踏着巨人的肩膀,进行分析的,个人能力有限,有误请多多指正。篇幅也比较长,对于流程不感兴趣的,可以直接看文末总结。带着疑问学习本文:KeyEvent在Activity、View层次结构是转载 2021-01-18 14:42:51 · 632 阅读 · 0 评论 -
单行文本自动适配
public class SingleLineTextView extends AppCompatTextView { private Paint mTextPaint; private float mTextSize; public SingleLineTextView(Context context) { this(context, null); } public SingleLineTextView(Context context, Att...原创 2020-09-22 16:23:36 · 101 阅读 · 0 评论 -
Android控制文字水平间距android:letterSpacing
如果要想实现Android TextView之类的文字保持间距,那么需要设置android:letterSpacing,android:letterSpacing的值是一个浮点数,为标准字体的倍数作为间距。textView 在设置xml中, android:letterSpacing="0.5" 代码中 text.setLetter...原创 2020-03-10 11:27:50 · 897 阅读 · 0 评论 -
java基础之 “==”和“ equals”以及instanceof的区别
(1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。“==”比较两个变量本身的值,即两个对象在内存中的首地址。“equals()”比较字符串中所包含的内容是否相同。比如:String s1,s2,s3 = "abc", s4 ="abc" ;s1 = new String("abc");s2 = new St原创 2015-11-02 17:54:15 · 423 阅读 · 0 评论 -
Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?等等……对于这些转载 2015-11-03 16:35:36 · 346 阅读 · 0 评论 -
Android getWidth和getMeasuredWidth的理解
一、 也许很多同学对getWidth()和getMeasuredWidth()的用法有很多的不解,这两者之间有什么样的不同呢,网上也有各种不同的版本,但大多都大同小异罢了,从这个地方CTRL + C 到另一个地方CTRL + V, 没有把问题说透,也有一部分文章误导了大家对这两个方法的认识,我也是深受其害。这里先纠正下面的一个版本,Baidu上一搜一大堆的,可惜这种说法是错的,所以希望大家就不要再原创 2016-01-20 11:09:34 · 390 阅读 · 0 评论 -
Android开发中 10个常用工具类
1、日志工具类L.java[java] view plaincopypackage com.zhy.utils; import android.util.Log; /** * Log统一管理类 * * * */ public class L {原创 2015-12-21 10:23:27 · 491 阅读 · 0 评论 -
Android 打造万能的ListView GridView 适配器
1、概述相信做Android开发的写得最多的就是ListView,GridView的适配器吧,记得以前开发一同事开发项目,一个项目下来基本就一直在写ListView的Adapter都快吐了~~~对于Adapter一般都继承BaseAdapter复写几个方法,getView里面使用ViewHolder模式,其实大部分的代码基本都是类似的。本篇博客为快速开发系列的第一篇,将一步一步带您原创 2015-12-21 13:45:46 · 494 阅读 · 0 评论 -
Android Drawable 那些不为人知的高效用法
1、概述Drawable在我们平时的开发中,基本都会用到,而且给大家非常的有用。那么什么是Drawable呢?能够在canvas上绘制的一个玩意,而且相比于View,并不需要去考虑measure、layout,仅仅只要去考虑如何draw(canavs)。当然了,对于Drawable传统的用法,大家肯定不陌生 ,今天主要给大家带来以下几个Drawable的用法:1、自定义Drawab原创 2016-05-24 10:43:12 · 4295 阅读 · 0 评论 -
Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38377229 ,本文出自【张鸿洋的博客】很多人面试肯定都被问到过,请问Android中的Looper , Handler , Message有什么关系?本篇博客目的首先为大家从源码角度介绍3者关系,然后给出一个容易记忆的结论。1、 概述Handler 、 Lo转载 2016-05-17 09:26:21 · 318 阅读 · 0 评论 -
你真的了解AsyncTask?
虽说现在做网络请求有了Volley全家桶和OkHttp这样好用的库,但是在处理其他后台任务以及与UI交互上,还是需要用到AsyncTask。但是你真的了解AsyncTask吗?AsyncTask的实现几经修改,因此在不同版本的Android系统上表现各异;我相信,任何一个用户量上千万的产品绝对不会在代码里面使用系统原生的AsynTask,因为它蛋疼的兼容性以及极高的崩溃率实在让人不敢恭维。原创 2016-06-13 16:02:32 · 1481 阅读 · 2 评论 -
android Intent机制详解
什么是IntentIntent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTIO原创 2015-11-02 16:15:07 · 312 阅读 · 0 评论 -
Android 实现 WheelView
我们都知道,在iOS里面有一种控件------滚筒控件(Wheel View),这通常用于设置时间/日期,非常方便,但Android SDK并没有提供类似的控件。这里介绍一下如何Android实现WheelView。先来看一看iOS中的WheelView的效果图:这个效果不错吧,我们应该如何实现呢?那在Android如果也要实现这样一个效果,应该怎么做呢?转载 2015-12-10 10:34:09 · 871 阅读 · 0 评论 -
Activity的四种启动加载模式(launchMode)
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。Activity一共有以下四种launchMode:1.standard2.singleTop原创 2015-11-02 11:34:52 · 1149 阅读 · 0 评论 -
Android LayoutInflater详解
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。具体作用:1、对于一个没有被载入或者想要动态载入的界面,都需要使用Layou转载 2015-05-14 10:41:53 · 273 阅读 · 0 评论 -
Android异步消息处理机制 handler
我们都知道,Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMessage()方法中获得刚才发送的Message对象,然后在这里进行UI操作就不会再出现崩溃了。这种处理方式被称为转载 2015-05-14 10:52:02 · 316 阅读 · 0 评论 -
优化ListView
1. 使用后台线程,让ListView流畅滚动有经验的开发者经常建议:不要在主线程进行耗时的操作。但对于初学者来说,到底什么是主线程呢?这个问题我琢磨了很久。主线程其实就是UI线程,这个线程负责处理跟UI相关的操作。界面的绘制、界面的加载、控件的调整等操作都是由主线程来执行的。UI线程之所以被称作主线程,是因为在绝大多数情况下,我们写的代码都会在跑在UI线程里,比如界面的各个生命周期的回调转载 2015-05-14 10:47:09 · 281 阅读 · 0 评论 -
SpannableString属性详解
1、BackgroundColorSpan 背景色 2、ClickableSpan 文本可点击,有点击事件 3、ForegroundColorSpan 文本颜色(前景色) 4、MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter) 5、MetricAffectingSpan 父类原创 2015-06-05 12:18:34 · 269 阅读 · 0 评论 -
android动画详解
巧用Android的自定义动画,使你更加的有动感,是大多数Android开发人员的目标,那怎么做到这点。请听下文分解: 3.0以前,android支持两种动画模式,tween animation(幅间动画),frame animation(帧动画),在android3.0中又引入了一个新的动画系统:property animation(值动画),这三种动画模式在SDK中被称为property原创 2015-09-08 12:02:10 · 249 阅读 · 0 评论 -
Java泛型
1. 概述在引入范型之前,Java类型分为原始类型、复杂类型,其中复杂类型分为数组和类。引入范型后,一个复杂类型就可以在细分成更多的类型。例如原先的类型List,现在在细分成List, List等更多的类型。注意,现在List, List是两种不同的类型,他们之间没有继承关系,即使String继承了Object。下面的代码是非法的 List ls = new Arra原创 2015-11-03 16:04:50 · 334 阅读 · 0 评论 -
Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻的理解了。还未阅读过的朋友,请先参考 Android事件分发机制完全解析,带你从源码的角度彻底理解(上) 。那么今天我们将继续上次未完成的话题,从源码的角度分析ViewGruop的事件分发。首先我们来探讨一下,什么是ViewGrou转载 2015-11-04 10:02:56 · 278 阅读 · 0 评论 -
Android ListView工作原理完全解析,带你从源码的角度彻底理解
在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。另外ListView还有一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比如达到成百上千条甚至更多,原创 2015-11-04 16:45:43 · 607 阅读 · 0 评论 -
Android Fragment完全解析
我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。这个时候更好的体验效果是在Activity中嵌入"小Activity",然后原创 2015-11-05 16:02:27 · 286 阅读 · 0 评论 -
android窗口管理剖析
Android窗口管理 一、 概述在Android系统中,从设计的角度来看,窗口管理系统是基于C/S模式的。整个窗口系统分为服务端和客户端两大部分,客户端负责请求创建窗口和使用窗口,服务端完成窗口的维护,窗口显示等。 在Client端,并不是直接和WindowManagerService交互,而是直接和本地对象WindowManager交转载 2015-11-02 11:46:59 · 373 阅读 · 0 评论 -
Activity 的生命周期 状态
Activity 的生命周期和 J2ME 的 MIDlet 一样,在 android 中,Activity 的生命周期交给系统统一管理。与 MIDlet 不同的是安装在 android 中的所有的 Activity 都是平等的。Activity 的状态及状态间的转换在 android 中,Activity 拥有四种基本状态:Active/Runing一个新 Activity 启原创 2015-05-15 10:43:28 · 397 阅读 · 0 评论