Window的作用 Window是Android窗口系统的核心,扮演着多重角色,包括: 界面绘制:Window负责将Activity定义的用户界面绘制到屏幕上,包括布局和视图的绘制。...多窗口支持:Window支持多窗口模式,允许在同一屏幕上同时运行多个应用程序或Activity,提供了更多多任务处理的灵活性。...使用DecorView示例 以下是一个示例代码,演示如何在Activity中获取DecorView并更改其背景颜色: // 获取当前Activity的DecorView View decorView =...系统提示框:用于显示系统级提示,如权限请求、应用更新等。 创建一个简单的Window 首先,让我们创建一个简单的Android Window,这个Window将包含一个文本视图。...通常,在Activity的onStart()和onResume()方法中,Window会变得可见,并在屏幕上绘制Activity的用户界面。
表示Activity所属的种类 实际上,action和category标签中的android:name属性值只是一个普通的字符串。...第一层称为焦点生命周期 第二层称为可视生命周期 也就是说第一层循环在Activity焦点的获得与失去中循环,这一过程中Activity始终可见。...第二层循环在Activity可见与不可见的过程中循环,在这个过程中伴随着Activity焦点的获得与失去。...如果在类中大量使用静态变量(尤其是很占用资源的变量,如Bitmap对象)可能会造成内存溢出异常,而且可能因为静态变量在很多类中出现而造成代码难以维护和混乱。...例如 tv.setText(String.valueOf(200));将TextView的文本设置为200 在更高级的Android应用中,往往需要动态的添加视图,要实现这个功能,最重要的是要获得被添加的视图所在的容器对象
release 版,那么 AS 是无法将项目跑到盒子上的,需要先将系统应用删除后才可以正常开发。...即使我们对子控件设置了 layout_marginTop = -10dp,来将子控件往上移到父控件的上边界,虽然子控件实际位置确实是往上移了,但是在这个 10dp 的区域内是不会绘制的,也就是说子控件上面...正常情况下,如果我们对子控件设置 layout_marginTop 为负来将子控件的一部分区域移出父控件的边界,那么子控件超出父控件边界的这部分是不会被绘制出来的,如果对这个属性设置了 false,那么就允许绘制超出的这部分内容了...4.TextView设置不同字体样式 ?...Context:运行上下文,Activity和Service本质上都是一个Context,Context包含了它们作为运行实体的共性,如启动Activity,绑定Service,处理Broadcast和
,我们可以在AndroidManifest.xml中在 元素下指定一个 对象,然后其子元素声明一个 元素,这样我们可以将这个action动作绑定到了这个Activity上,即Android操作系统会去找与...intent对象中指定的action名字的 对象,然后执行相应的动作,例如: 这样我们的Intent对象,在启动时,就会找到名字为 com.example.android_intent.second 的对象...二、通过startActivityForResult方法来得到Activity的回传值 在一些情况下,我们通过 A activity跳转到 B activity上,这时希望 A activtiy能从 B...这样的场景在实际开发中还是很常见的,比如说A activity中做了一个查询的功能,查询向后台请求数据假设需要传入一个时间字段,不传的话默认是当前时间,B activity中可以设置时间,那我们就可以在根据...按照Android官方给的建议的解决方法如下: Communicating with the Activity,思路就是Activity实现某个接口,然后在Fragment-A关联上Activity之后将
每个Activity都对应着一个屏幕上的窗口,用户在不同的Activity之间进行切换来完成不同的功能。...布局和界面:通过XML布局文件或代码方式定义Activity的界面布局,使用各种UI组件(如Button、TextView、EditText等)构建用户界面。...在Activity中加载布局:在Activity的onCreate()方法中调用setContentView()方法,传入布局文件的资源ID,将布局文件与Activity关联起来。...生命周期 Activity的生命周期是指从Activity创建到销毁的整个过程,可以分为以下几个阶段: 创建阶段: onCreate():在Activity首次创建时调用,进行一些初始化操作,如设置布局...重启阶段(可选): onRestart():当已停止的Activity再次启动时调用,此方法在Activity从后台重新回到前台时调用。
{ num_textview.setSelection(num_textview.text.length) } }) 监听焦点变化 num_textview.setOnFocusChangeListener...{ view, b -> if(b){ num_textview.setSelection(num_textview.text.length) } } 默认不获取焦点...系统将选择一个合适的状态或依赖于主题的设置。 stateUnchanged 当主窗口出现在前面时,软键盘被保持它上次是什么状态,无论上次是可见或隐藏。...adjustUnspecified 这个是软件盘行为默认的设置。它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。...如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。
概述 官方API ---- Fragment是什么 Android 在 Android 3.0(API 11 级)中引入了Fragment,主要是为了给大屏幕(如平板电脑)上更加动态和灵活的 UI 设计提供支持...我们应该将每个片段都设计为可重复使用的模块化 Activity 组件。...例如:仍然以新闻应用为例—在平板电脑尺寸的设备上运行时,该应用可以在Activity A 中嵌入两个片段。...->onResume ②当我们弄出一个悬浮的对话框风格的Activity,或者其他,就是让Fragment所在的Activity可见,但不获得焦点 onPause ③当对话框关闭,Activity又获得了焦点...有点类似: 三种状态: Resumed:在允许中的Fragment可见 Paused:所在Activity可见,但是得不到焦点 Stoped: ①调用addToBackStack(),Fragment
要指定 Activity 可以使用 PIP 模式,需要在 Manifest文件中将 android:supportsPictureInPicture设置为 true,除了上面提到的用户手动将 Activity...变成 PIP 模式,还可以使用 Activity.enterPictureInPictureMode(PictureInPictureArgs args)动态将 Activity 设置为 PIP 模式...() 更新 Activity 的 PIP 配置设置,如果 Activity 目前处于 PIP 模式,则会更新此设置。 ...1.7 TextView 字体自动适配 Android O 版本允许设置 TextView 的字体大小根据设置的初始大小自动放大或者缩小,这样就可以让字体的显示在不同的屏幕和不同的显示内容上达到最优的效果...对象,设置对应的 type,就可以指定获取焦点的类型,同时可以设置当音频焦点被强占时候应用的行为,轻声继续播放还是彻底暂停。
要指定 Activity 可以使用 PIP 模式,需要在 Manifest文件中将 android:supportsPictureInPicture 设置为 true,除了上面提到的用户手动将 Activity...变成 PIP 模式,还可以使用 Activity.enterPictureInPictureMode(PictureInPictureArgs args) 动态将 Activity 设置为 PIP 模式...() 更新 Activity 的 PIP 配置设置,如果 Activity 目前处于 PIP 模式,则会更新此设置。...1.7 TextView 字体自动适配 Android O 版本允许设置 TextView 的字体大小根据设置的初始大小自动放大或者缩小,这样就可以让字体的显示在不同的屏幕和不同的显示内容上达到最优的效果... 对象,设置对应的 type,就可以指定获取焦点的类型,同时可以设置当音频焦点被强占时候应用的行为,轻声继续播放还是彻底暂停。
setWidth/setHeight 设置宽高,也可以在构造方法那里指定好宽高, 除了可以写具体的值,还可以用WRAP_CONTENT或MATCH_PARENT, popupWindow的width和height...setFocusable(true) 设置焦点,PopupWindow弹出后,所有的触屏和物理按键都由PopupWindows 处理。...: setFocusable设置PopupWindow的焦点,一般资料对此的解释都是:是否让Popupwindow可以点击但是这揭示了本质却与直观现象不符。...实际上, 如果: setFocusable(true); 则PopUpWindow本身可以看作一个类似于模态对话框的东西(但有区别),PopupWindow弹出后,所有的触屏和物理按键都有PopupWindows...如此设置才能让PopupWindow在点击back的时候消失。
TextView控件学习 TextView控件可以向用户展现文本信息,我们可以设置该文本信息是否能编辑 1、TextView基本使用 在程序中创建TextView对象 在xml文件中布局使用 2、New...name:com.b510.textview.activity Create Activity:MainActivity Min SDK Version:8 Finish 这样我们的项目就搭建起来了...3、在MainActivity.java文件中添加TextView控件 public class MainActivity extends Activity{ public void onCreate...5、TextView属性 设置字体大小推荐使用sp作为单位 设置宽度或高度等属性时推荐使用dp(dip)作为单位 android:TextSize=”20sp” 6、设置超链 android:autoLink...--触摸时获得焦点--> android:focuseableTouchMode=”true” android:singleLine=”true”
6、客户端 Activity 二、博客源码 总结 Android 依赖注入的核心就是通过反射获取 类 / 方法 / 字段 上的注解 , 以及注解属性 ; 在 Activity 基类中 , 获取该注解...; } /** * 拦截方法 , 并使用自己的方法替换 * 如 : 发现是 onClick 方法 , 则替换成用户自定义的方法 (被 @OnClick 注解修饰的方法...5、依赖注入工具类 将上一篇博客 【IOC 控制反转】Android 布局依赖注入 ( 布局依赖注入步骤 | 布局依赖注入代码示例 ) 中的布局注入 , 抽到 injectLayout 方法中 ; 将注入视图组件定义在...extends Activity> clazz = activity.getClass(); // 反射获取类上的注解 ContentView contentView =...(viewId); try { // 通过反射设置 Activity 的对应属性字段的值 field.set(activity
三、博客源码 总结 Android 依赖注入的核心就是通过反射获取 类 / 方法 / 字段 上的注解 , 以及注解属性 ; 在 Activity 基类中 , 获取该注解 以及 注解属性 , 进行相关操作..., 继承 BaseActivity , 在属性字段上使用 @BindBiew 注解注入视图 ; ③ IOC 库中的 Activity 父类 : 定义 BaseActivity , 在 BaseActivity...4、依赖注入工具类 将上一篇博客 【IOC 控制反转】Android 布局依赖注入 ( 布局依赖注入步骤 | 布局依赖注入代码示例 ) 中的布局注入 , 抽到 injectLayout 方法中 ; 将注入视图组件定义在...(viewId); try { // 通过反射设置 Activity 的对应属性字段的值 field.set(activity...; import kim.hsl.ioc_lib.BindView; import kim.hsl.ioc_lib.ContentView; /** * 当该 MainActivity 启动时 ,
* android:layout_width:定义当前视图在屏幕上所占的宽度,fill_parent即填充整个屏幕。...在这里,布局中设置了一个TextView,用来配置文本标签Widget,其中设置的属性android:layout_width为整个屏幕的宽度,android:layout_height可以根据文字来改变高度...,而android:text则设置了这个TextView要显示的文字内容,这里引用了@string中的hello字符串,即String.xml文件中的hello所代表的字符串资源。...在onCreate方法中通过setContentView(R.layout.main)设置Activity要显示的布局文件(/layout/main.xml)。...TextView中即可,如代码清单3-8所示。
· 暂停状态:Activity可见,但没有焦点,不能接受用户输入事件。(例如:当一个透明的或者非全屏的Activity位于该Activity之前时) · 停止状态:Activity不可见。...应该使用这个Bundle将UI恢复为上一次的状态,既可以通过onCreate方法也可以重写onRestoreInstanceState。 ...此时,Activity可见,但可能没有焦点,或者可能被部分遮挡了。Activity在完整生存期期间可能会包含多个可见生存期。...当UI再次启动时,可以用onStart或者onRestart方法来恢复或者重启这些进程。 onRestart在除了对onStart方法的第一次调用之外的所有方法之前被立即调用。...当Activity处于活动期时,它在前台,并可以接收用户输入事件。Activity被销毁前可能会经历多个活动生存期,在失去焦点是,活动生存期就结束了。
自动调整 TextView 的大小 Android 8.0 允许您根据 TextView 的大小自动设置文本展开或收缩的大小。...如需了解有关如何在 Android 8.0 中自动调整 TextView 的大小的详细信息,请参阅自动调整 TextView 的大小。 自适应图标 Android 8.0 引入自适应启动器图标。...如果 Activity 支持多窗口模式,并且在具有多显示器的设备上运行,则用户可以将 Activity 从一个显示器移动到另一个显示器。...每次只有一个 Activity 可以处于继续状态,即使此应用具有多个显示器。具有焦点的 Activity 将处于继续状态,所有其他可见的 Activity 均暂停,但不会停止。...音频焦点增强功能 音频应用通过请求和舍弃音频焦点的方式在设备上共享音频输出。应用通过启动或停止播放或者闪避音量的方式处理处于聚焦状态的变更。有一个新的 AudioFocusRequest 类。
概述 Toast与对话框类似,也会在屏幕的某个位置弹出一个窗口,在窗口中可以显示文本、图片等信息 与对话框不同的是,Toast信息提示框不可获得焦点,而且在显示一定的时间后会自动关闭。...因此,再显示Toast信息提示框的同时,屏幕上的控件仍然可以继续操作。 Toast的基本用法 显示Toast需要使用android.widget.Toast类。...注意:在创建只显示文本的Toast对象时,建议使用Toast.makeText方法,而不要直接new Toast对象,虽然Toast类有setText方法,但是不能在使用new关键字创建Toast对象后设置...// 将布局文件转换为View View view = getLayoutInflater().inflate(R.layout.activity_custom_toast, null)...; // 设置提示文字 TextView tv = (TextView) view.findViewById(R.id.textview); tv.setText
,我们可以在 AndroidManifest.xml中在 Activity> 元素下指定一个 对象,然后其子元素声明一个 元素,这样我们可以将这个action...> 这样我们的Intent对象,在启动时,就会找到名字为 com.xiaoluo.android_intent.second 的对象,来启动我们的SecondActivity...二、通过startActivityForResult方法来得到Activity的回传值 在一些情况下,我们通过 A activity跳转到 B activity上,这时希望 A activtiy能从 B...例如,我们希望完成下面一个功能,在MainActivity上,写上一个算术表达式,然后跳转到到第二个SecondActivity上,在这个 Activity上将第一个Activity的表达式显示出来,然后我们可以输入我们的算术表达式结果...对象的生命 finish(); } }); } } 这个类里面我们将MainActivity传过来的值给TextView赋上,然后通过点击按钮将值回传给我们的 MainActivity,通过 setResult
一个视图(View)在屏幕上占据了一块矩形区域,它负责渲染这块矩形区域(如将这块矩形区域变成其他颜色),也可以处理这块矩形区域发生的事件(如用户单击事件),并且可以设置这块区域是否可见、是否可以获取焦点等...(int) 设置该组件的最小宽度 android:nextFocusDown setNextFocusDownld(int) 设置焦点在该组件上,且单击向下键时获得焦点的组件ID android:nextFocusLeft...setNextFocusLefUd(int) 设置焦点在该组件上,且单击向左键时获得焦点的组件ID android:nextFocusRight setNextFocusRightld(int) 设置焦点在该组件上...,且单击向右键时获得焦点的组件ID androidrnextFocusUp setNexlFocusUpId(int) 设置焦点在该组件上,且单击向上键时获得焦点的组件ID android.onClick...; // 向layout容器添加一个TextView layout.addView(show); // 设置该Activity显示layout
建立的空 Activity修改为 TextViewActive即可. 建立好之后会自动 在 AndroidMinifest.xml中注册.让我们使用....然后也会自动在Layout下面创建一个activity_text_view.xml布局文件,当然名字在你创建Activity的时候 可以自己指定 二丶TextView Xml写法 2.1 TextView...的常用属性的写法 TextView中的Text属性可以指定你要显示的名称.可以直接写,也可以引用另一个Xml文件中信息 在Android Studio中 Values下记录的这是一些信息....="marquee_forever" //设置循环次数,marquee_forever代表一致循环 android:focusable="true" //设置焦点 android:focusableInTouchMode...="true" //设置焦点模式 xml代码如下 TextView android:layout_width="wrap_content"