![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android组件&View相关
文章平均质量分 78
Android常用组件、界面显示、交互的相关内容
丞恤猿
人生就如西西弗斯推石头上山:
while(true){
滚下来();
推上去();
}
展开
-
Android BroadcastReceiver总结
#BroadcastReceiver综述 广播接收器,顾名思义,用来接收广播的。 一个广播关联两个角色,广播发送方、广播接收方,BroadcastReceiver是接收方角色。 广播发送方可以是应用内组件、其它应用,也可以是系统,BroadcastReceiver根据自己设置的过滤器IntentFilter来选择性接收。 BroadcastReceiver通过接收这些广播,实现了与其它组件、应用间的通信。1.广播接收器注册时是被注册到系统,发送广播时也是...原创 2022-04-02 14:11:41 · 2870 阅读 · 0 评论 -
BroadcastReciever简单用法示例
&&.生命周期非常短,在接受到广播时创建,onRecieve( … )方法执行完后销毁;10s内onRecieve(…)方法未执行完,会出现ANR错误;BroadcastReciever简单用法示例://发送广播Intent intent = new Intent( xxx.this, xxx)sendBraodcast( intent );原创 2017-07-25 10:41:41 · 730 阅读 · 0 评论 -
Android Service总结
两种运行模式:直接启动 or 绑定,对应的生命周期如上图所示。大概总结:模式一:调用方无法与Service有效通信。startService()激活,stopService()关闭。模式二:调用方可以与Service进行通信。多个调用方可以绑定同一个Service,只有所有调用方都解绑定了,Service才销毁。 bindService( Inten原创 2017-07-25 10:47:16 · 473 阅读 · 0 评论 -
Android Activity间的两种跳转方式、自我关闭方法、关闭后的结果处理
#.两种跳转方式startActivity(Intent);//简单跳转startActivityForResult(Intent, requestCode);//带有请求砝的跳转#.自我关闭方法finish();//简单关闭finishActivity(requestCode);//很少用到若关闭前需要返回结果,则应先调用:setResult(resultCo原创 2017-07-25 10:18:09 · 1902 阅读 · 0 评论 -
Android Style & Theme简略总结
##.Style: style是一个特定样式view的属性的集合。一个style可以定义 比如 字体 颜色尺寸 背景等等特定属性。##.Theme: Theme 是一种应用于整个application,activity或指定Window整个继承结构的样式,而不仅仅是用于单个view。当你将style应用为Theme时,application或activity中的每一个view 都会应用它支持的每个style的属性。Theme还可以将style应用于非视图元素,例如stat...原创 2022-04-04 22:21:40 · 898 阅读 · 0 评论 -
Android Activity总结
(主要参考《Android艺术探索》第一章及其它相关章节)一、生命周期图 && 一些特殊情况 onCreate() onStart() onRestart() onResume() onPause() onStop() onDestroy()可参考剪藏:Android总结篇系列:Activity生命...原创 2022-04-02 14:05:58 · 817 阅读 · 0 评论 -
Android DialogFragment总结
#.简介 DialogFragment是继承Fragment,兼具Fragment和Dialog的特点: 一方面,它具有Fragment的生命周期,可以由Activity的FragmentManager来管理器生命周期; 另一方面,其内部包含一个Dialog成员变量,可以像窗口一样展示。##.DialogFragment相对于Dialog的优点: Dialog的生命周期不会随着Activity生命周期变化而变化,而DialogFragment继承自Fragme...原创 2022-04-04 22:24:45 · 2397 阅读 · 0 评论 -
通知栏Notification和常驻通知栏
通知栏Notification和常驻通知栏:&&.普通Notification一、整体步骤//1.获取通知栏管理器实例NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); //2.获取要弹出的NotificationNot原创 2017-07-25 10:56:24 · 10480 阅读 · 0 评论 -
Android Activity的任务栈 & 四种加载模式
#.首先,四种加载模式的简单概括:1.Standard(标准模式):每次加载,都会重新创建一个目标Activity实例,并放在栈顶。2.SingleTop(单顶模式):若栈顶已经存在目标Activity实例,则复用;否则,创建新的实例,放在栈顶。3.SingleTask(单栈模式):若任务栈中已存在目标Activity实例,则清空其上面的Activity,复用该Activity实例;否则,创建新的实例,放在栈顶。4.SingleInstance(单例模式):整个系原创 2017-07-27 15:22:46 · 756 阅读 · 0 评论 -
Dialog简略总结
Android提供了丰富的对话框支持,它提供了如下4中常用的对话框: AlertDialog:警告对话框,使用最广泛功能最丰富的一个对话框。 ProgressDialog:进度条对话框,只是对进度条进行了简单的封装。 DatePickerDialog:日期对话框。 TimePickerDialog:时间对话框。 所有的对话框,都是直接或间接继承原创 2017-07-25 10:51:58 · 434 阅读 · 0 评论 -
Android Activity界面显示 & 显示风格 & 转场动画
#.整体简介 首先,Activity中包含一个Window,用于显示界面的载体是Window,实现类是PhoneWindow。 而PhoneWindow以一个DecorView为根布局,包含两块区域: 操作栏(ActionBar)、 内容区(ContentParent)。 用户可以通过调整主题参数来控制是否显示ActionBar,用户添加的界面布局都是添加到内容区(ContentParent)中,通过setContentView(【View】...原创 2022-04-04 22:13:42 · 1167 阅读 · 0 评论 -
Android Fragment总结
理解:Fragment,故名思议,就是Activity的片段,或者说是Activity的零部件。有自己独立的生命周期,有自己的界面,自己的交互控制逻辑,像积木一样可以被Activity自由地搭配使用。 好处有二,一是便于代码管理,二是便于 相应功能的拼装 和复用。Fragment和Activity的关系,简单来说,就是Fragment寄生于Activity,母体一死,寄生原创 2017-07-25 10:31:35 · 749 阅读 · 0 评论 -
Android Dialog总结
#.概述 Android系统提供的所有对话框类都继承自Dialog类,一般用到的是AlertDialog。 系统本身提供了AlertDialog的一些样式、也提供了AlertDialog的一些子类Dialog用于某些具体功能,除此之外用户还可自定义AlertDialog的样式。#.分类与常见用法 这边剪藏写得特别好,条理清晰明确、而且要点基本都包含在内:Android对话框(Dialog)完全使用手册 - 简书1.共有5种样式的AlertDialog,示例代码和说明...原创 2022-04-04 22:22:52 · 1336 阅读 · 0 评论 -
Android ActivityManager一些API介绍
Android中Java层的ActivityManager类中封装了很多API,可以供我们查询当前系统的很多信息,包括:内存、进程(Process)、任务栈(Task)、服务(Service)等的相关信息。 利用这些信息可以进行一些有用的判断,例如判断当前系统内存是否不足、指定Service是否在运行中。 (ActivityManager类封装了很多API方法供上层调用,具体负责管理Activity、Service等组件的是ActivityManagerService(AMS...原创 2022-05-19 20:08:59 · 610 阅读 · 0 评论 -
Android 屏幕画面生成的整体大致流程和一些相关概念:Window & Surface
#.屏幕画面生成的整体大致流程下面我们从Window开始说起,逐步讲到屏幕画面输出的大致流程: 我们平时使用的Activity/Dialog/Toast中都包含一个Window对象,从概念上讲,这个Window是所有View的载体,它由PhoneWindow来实现,内部包含一个DecorView,而DecorView是View树的最顶层节点。 但在app使用过程中,一个View我们能找到具体与什么相对应,而Window找不到,因为Window只是Android框架中的...原创 2022-05-08 17:59:23 · 1240 阅读 · 0 评论 -
Android WindowManager & Window属性 & 添加悬浮窗的示例代码
Android中用来管理Window的接口类,具体实现类是WindowManagerImpl,而最终是交给WindowManagerService来真实实现相应功能。Window的属性定义在WindowManager.LayoutParams类中。相关属性有很多种,与应用开发最密切的有四类,分别是Type(Window的类型)、Flag(Window的标志)、SoftInputMode(软键盘相关模式)、位置大小相关属性。悬浮窗是通过WindowManager添加Window窗口来实现的,添加窗口类型的是原创 2022-05-16 19:43:24 · 631 阅读 · 0 评论 -
Android Imageview的7种裁剪模式 & Bitmap居中裁剪示例代码
#.Imageview的7种裁剪模式1.android:scaleType=“center”:居中显示。 不缩放,如果有超出ImageView部分,则居中裁剪。2.android:scaleType=“centerCrop”:居中裁剪。 等比缩放,直到一边充满ImageView,另一边大于等于ImageView边界,超出ImageView的那一边被居中裁剪。3.android:scaleType=“centerInside”:居中包含。 不缩放或者...原创 2022-05-08 13:19:16 · 3704 阅读 · 0 评论 -
Android ValueAnimator、ObjectAnimator与插值器interpolator、估值器Evaluator
##.综合介绍1.插值器interpolator 动画的插值器用于控制动画完成度相对于时间的变化规律,使其符合设定的数学函数。(不过大部分情况下,我们主要是选用系统预设的几种插值器来控制速度变化。) 完成度以float类型返回,1.0代表完成100%进度。通过给动画设置插值器,可以控制控制对象的运动轨迹。(上面完成度的值可以超过1.0,例如控制运动对象超过终点位置再返回终点,完成度就先超过1.0再变回1.0)常用的插值器:以下内容摘自Android - 动画(帧动画,补间...原创 2022-05-05 23:08:44 · 914 阅读 · 0 评论 -
ViewPager简略总结
整体简略总结:与ListView的使用极其相似,略有差别的地方在于:1.使用的是PageAdapter, 里面的几个API名称与参数有差异。 setPageAdapter(pageAdpater);2.可以设置OnPageChangeListener,这个监听器中几个回调方法可以监听 ViewPage滑动过程中的相关状态信息,由开发者做出相应逻辑处理:例如 当前所处的页索引、页面已经滑动的百分比、已经滑动的像素数、当前所处的滑动状态(尚无任何操作/滑动中/滑动停止)。...原创 2022-04-04 22:35:53 · 1193 阅读 · 0 评论 -
Android MotionEvent事件分发介绍与流程总结(伪代码形式)
如果要一句话简单总结的话,就是: 找到一个按照规则“消耗”掉MotionEvent.ACTION_DOWN事件的View,默认情况下,后继会把整个事件流都交给它来处理。#.总体概括 Android手机是可触屏的设备,其它Android设备一般也是可触屏的。 可触屏设备允许用户与屏幕进行一些触碰的互动,系统识别各式各样的触摸操作,然后做出复杂的功能反应。 本文一切都是针对Android手机来分析说明的。 用户手机触摸屏幕的那一瞬间,An...原创 2022-05-05 17:20:45 · 850 阅读 · 0 评论 -
Android Window&DecorView介绍
#Window整体简介: Window是Android中View界面显示的载体,它对应一块儿显示区域,承载并管理View的显示。 Android中所有的视图都是通过Window来呈现的,常见的显示组件如Activity、Dialog、DialogFragment、PopupWindow、Toast等,在内部都会创建Window对象,用于其界面的显示。 Window是个抽象类,其对应的实现类是PhoneWindow类。#.PhoneWindow内部界面相关 ...原创 2022-04-04 22:15:12 · 960 阅读 · 0 评论 -
Android显示长度单位相关:px、ppi、dp、dpi、sp、density
#.概念解释:1.px:屏幕显示的基本单位是像素,px代表一个像素长度。2.ppi:即“屏幕密度”,沿屏幕对角线方向上,一英寸长度上所包含的像素数,即折算成的px长度。(注:一英寸inch 约等于2.54cm)3.dpi:与ppi定义类似,但指的是对角线方向一英寸长度包含的印刷点数量,一般情况下,一个像素对应一个印刷点,所以一般dpi=ppi。4.dp:全称:Density-independent pixel (dp)独立像素密度。 不同屏幕的尺寸大小、分辨率、ppi等不同,为了...原创 2022-05-05 18:41:13 · 1506 阅读 · 0 评论 -
Android View坐标系与View坐标获取
##.View显示坐标系Android的显示坐标体系与大多数显示系统一样,以左上角为原点,右方为x轴正方向,下方为y轴正方向。屏幕的坐标系以屏幕的左上角为原点,而在一个View内部的坐标系以该View的走上角为原点。##.获取View左上角在屏幕上的坐标//传入一个长度为2的数组,在方法内处理后,数组会获取到对应x、y坐标public void getLocationOnScreen(@Size(2) int[] outLocation)##.在父View坐标系中,获原创 2022-05-05 18:32:19 · 1272 阅读 · 0 评论 -
Android View工作原理:测量、布局、绘制流程 & 自定义View
#.概述##.PhoneWindow中的DecorView是根布局 Android中Window是显示和管理View的载体,其实现类是PhoneWindow。 所有View是按照树的逻辑结构来管理的,父View有多个子View节点,子View节点又可以有多个View节点。 而这棵View树的根节点是PhoneWindow中的根布局,一个DecorView,DecorView由两部分构成: ActionBar(操作条区域,顶部用于显示标题和几个操作...原创 2022-05-05 19:24:35 · 958 阅读 · 0 评论 -
Android 手势事件工具类GestureDetector和VelocityTracker
Android提供了一些工具类,以便于快速判断手势事件的类型和进行相关处理。例如各种动作的判断(双击、长按等),例如计算滑动速度。这些当然可以在onTouchEvent(MotionEvent)中自己写逻辑进行处理,但借助工具类更简便。1.手势检测器GestureDetector,可用于判断各种手势,双击、长按等。示例代码和注释如下:// 步骤1.创建一个监听回调GestureDetector.SimpleOnGestureListener listener = new G...原创 2022-05-05 17:53:15 · 445 阅读 · 0 评论 -
Android 动画:补间动画、属性动画、帧动画
Android三类动画:1.属性动画:通过渐进改变View对象的属性值,实现动画(可以是该对象java类中任意已实现set/get方法的属性)2.补间动画:也是通过渐进变化方式,实现动画,仅仅实现一个动画效果,未真正改变View属性值3.帧动画:设置了一组图片,通过图片快速切换显示,实现动画效果从实际效果和作用结果来看:1.属性动画、补间动画原创 2017-07-25 12:06:50 · 227 阅读 · 0 评论 -
Android PopupWindow简略总结
#.示例代码和使用要点如下: if(mPopupWindow == null){ //初始化的函数有多种,这只是其中一种 mPopupWindow = new PopupWindow(this); } View view = getLayoutInflater().inflate(R.layout.popupwindow_layout, null); view.findViewById...原创 2022-04-04 22:27:26 · 531 阅读 · 0 评论 -
Android滑动冲突解决
##.总结 当有滑动效果的多个View嵌套使用的时候,就有可能导致滑动冲突问题。 其本质其实是,滑动事件分发出了问题,即我们希望一个滑动事件在某种状态下交由A View来处理,却交给了B View来处理。解决问题的方法,当然就是根据具体场景的特点,通过滑动轨迹或者业务状态,判断出各种情况下的滑动操作与目标View的对应关系,然后通过View的onInterceptTouchEvent()等方法将滑动事件在各个状态下分发给对应的目标View。常见场景有3种,但解决思路总结起来都是上面...原创 2022-05-05 18:02:41 · 778 阅读 · 0 评论 -
Android RecyclerView总结
#.简介 RecyclerView用于展示列表,是Android5.0之后引入的用于替换ListView的组件,但功能比ListView强大得多,可实现竖向、横向、网格式、流式等多种布局。 RecyclerView中每个Item都对应一个ViewHolder,ViewHolder中存储着对应的界面View和其在RecyclerView中的索引位置。 这些ViewHolder由Adapter来负责提供,Adapter负责告诉RecyclerView一共有多少个item,负责为每个...原创 2022-04-04 22:32:49 · 1606 阅读 · 0 评论 -
Android View的滑动效果
View的滑动效果可分为两类: 1.View本身的位置不变,View内部的内容滑动; 2. View的位置发生变化,View作为一个整体滑动;##.View内部内容的滑动1.通过以下View的以下两个API方法可实现滑动: scrollTo(int x, int y);//滑动到坐标值x、y的位置,初始时x=0,y=0。 //从右向左滑动x增大,从下向上滑动y增大。反之减小。 s...原创 2022-05-05 18:17:28 · 1042 阅读 · 0 评论