android intent,activity,window
android获得屏幕高度和宽度(display中getSize(Point)方法使用)
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
diswidth = getContext().getResources().getDisplayMetrics().widthPixels;
disheight = getContext().getResources().getDisplayMetrics().heightPixels;
View.VISIBLE、INVISIBLE、GONE的区别
android中UI应用的开发中经常会使用view.setVisibility()来设置控件的可见性,其中该函数有3个可选值,他们有着不同的含义:
View.VISIBLE--->可见
View.INVISIBLE--->不可见,但这个View仍然会占用在xml文件中所分配的布局空间,不重新layout
View.GONE---->不可见,但这个View在ViewGroup中不保留位置,会重新layout,不再占用空间,那后面的view就会取代他的位置,
所以在使用时要小心,尤其要善用INVISIBLE和GONE;
1、自定义控件,继承相应的控件。
2、在构造函数中填充一个merge布局
3、初始化自定义控件中的内部View
4、提供刷新View的接口
[Android] Activity怎么获取contentView? 自定义getContentView()
对Activity而言,可以这么获取:
private View getContentView(){
return this.findViewById(android.R.id.content);
}
Android Fragment onCreateView方法调用时间
关于fragment多次调用onCreateView的问题
关于解决页面跳转(startActivityForResult )你还有不知道的!
View 的关键生命周期为 [改变可见性] --> 构造View --> onFinishInflate --> onAttachedToWindow --> onMeasure --> onSizeChanged --> onLayout --> onDraw --> onDetackedFromWindow
Android的onActivityResult不被调用的解决方案 good
Android中Message传递参数(bundle setData方式传递)
Android的Fragment中onActivityResult不被调用的终极解决方案
Android Activity、Fragment之间的数据传递和返回
android消息广播Intent传递数据 good
Android开发之Android Context,上下文(Activity Context, Application Context)
Android之Activity的几种跳转方式
Android之Activity的四种启动模式
android在非Activity下,intent页面跳转问题
View、Window以及Activity主要是用于显示并与用户交互的。
Surface其实就是一个持有像素点矩阵的对象,这个像素点矩阵是组成显示在屏幕的图像的一部分。我们看到显示的每个Window(包括对话框、全屏的Activity、状态栏等)都有他自己绘制的Surface。而最终的显示可能存在Window之间遮挡的问题,此时就是通过Surface Flinger对象渲染最终的显示,使他们以正确的Z-order显示出来。一般Surface拥有一个或多个缓存(一般2个),通过双缓存来刷新,这样就可以一边绘制一边加新缓存。
WindowManager为每个Window创建Surface对象,然后应用就可以通过这个Surface来绘制任何它想要绘制的东西。而对于WindowManager来说,这只不过是一块矩形区域而已。
前面我们说过,View是Window里面用于交互的UI元素。Window只attach一个View Tree,当Window需要重绘(如,当View调用invalidate)时,最终转为Window的Surface,Surface被锁住(locked)并返回Canvas对象,此时View拿到Canvas对象来绘制自己。当所有View绘制完成后,Surface解锁(unlock),并且post到绘制缓存用于绘制,通过Surface Flinger来组织各个Window,显示最终的整个屏幕。
Window为了绘制出用户想要的组件(按钮、文字、输入框等等),系统又不给我!没事,那我自己定义,于是就定义了View机制,给每个View提供Canvas,让不同的View自己绘制具有自己特色的组件。同时,为了更好的管理View,通过定义ViewGroup,等等。
对于开发人员来说,一个Activity就“相当于”一个界面(通过setContentView指定具体的View)。我们可以直接在Activity里处理事件,如onKeyEvent,onTouchEvent等。 并可以通过Activity维护应用程序的生命周期。
Activity、View、Window的理解一篇文章就够了 有图
Android 中的Activity、Window、View之间的关系
android设备投屏技术🔥:协议&概念
Android MVP设计架构优化(灵活、方便迭代)
浙公网安备 33010602011771号