首页 > 学院 > 开发设计 > 正文

Window,LayoutParams,View

2019-11-08 00:34:51
字体:
来源:转载
供稿:网友

什么是窗口(Window)? 

Window界面显示的最顶级元素, 任何东西都是显示在Window上的, 包括Activity, 对话框, Toast, 状态栏. 可以对比Windows里窗口, 有的手机也有多窗口功能。

LayoutParams 表示布局参数, 封装了一些被添加的Window的参数, 或者说是特征。

什么是LayoutParams? 1、布局参数, 封装了一个View的布局信息以及一些属性/特征.2、在布局文件里, 如果一个属性以 layout_ 开头, 这些属性的值会被封装到 LayoutParams 里3、所有在布局文件里配置的属性, 都可以使用代码设置值, 对于不带 layout_ 的属性, 可以调用某些setXxx方法设置,对于带 layout_ 的属性, 就要使用 LayoutParams 设置, setLayoutParams 方法4、以 layout_ 开头的属性, 都是子View自己决定不了的, 要和父View商量5、 每个ViewGroup都有一个内部类 LayoutParams, 定义了一些只有它的子View才能有的属性

要处理一个View的触摸事件, 可以重写它的onTouchEvent方法, 也可以给它设置OnTouchListener, 重写OnTouchListener中的onTouch方法

// 当View被触摸的时候, OnTouchListener中的 onTouch 方法会被调用// MotionEvent 封装了整个事件// 返回值表示要不要处理当前触摸事件// 事件的动作: 一个DOWN - n个 MOVE - 一个UPPRivate int mStartX;private int mStartY;@Overridepublic boolean onTouch(View v, MotionEvent event) {	switch (event.getAction()) {	case MotionEvent.ACTION_DOWN:		// 一律使用int值, 否则移动时会发生偏移,getRawX()距离屏幕的距离		mStartX = (int) event.getRawX();		mStartY = (int) event.getRawY();		break;	case MotionEvent.ACTION_MOVE:		break;	case MotionEvent.ACTION_UP:		break;	default:		break;	}	return true; // 表示要处理这个触摸事件}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表