view的绘制
来源:互联网 发布:广东韶关网络问政平台 编辑:程序博客网 时间:2024/06/18 12:33
View的绘制流程
1、onMeasure测量(计算宽高)
2、ViewGroup进行onLayout(基于位置和宽高布置到屏幕)
3、onDraw视图显示自身内容(渲染)
Canvas
画布,可以提供视图显示的载体,可以绘制文本、几何图形、图像、填充颜色
Paint
画笔,针对画布需要绘制的内容的修饰
//创建画笔paint = new Paint();//设置画笔颜色paint.setColor(0xff333333);//设置样式,STROKE表示空心,FILL表示实心paint.setStyle(Paint.Style.STROKE);//空心可以设置边框宽度paint.setStrokeWidth(2);//消除锯齿paint.setAntiAlias(true);//画笔大小paint.setTextSize(60);//设置透明paint.setAlpha(0x88);paint.setTextScaleX(3);拉伸或者收缩文本paint.setFakeBoldText(true); 加粗
使用画笔
protected void onDraw(Canvas canvas) { ... //画矩形 canvas.drawRect(5,10,105,90,paint);}
视图刷新
主线程中刷新:使用invalidate()
子线程刷新:mView.postInvalidate(); 相当于Handler+Thread
onTouchEvent
View中的onTouchEvent方法表示事件消耗的方法,如果需要对视图进行触摸的处理,则可以重写该方法
@Overridepublic boolean onTouchEvent(MotionEvent event) { //获取触摸行为 int action = event.getAction(); int x = (int) event.getX(); int y = (int) event.getY(); switch (action){ case MotionEvent.ACTION_DOWN: Log.e("m_tag","action down:"+x+" "+y); break; case MotionEvent.ACTION_MOVE: //触控点在View上的过程 Log.e("m_tag","action move:"+x+" "+y); break; case MotionEvent.ACTION_UP: Log.e("m_tag","action up:"+x+" "+y); break; } return true;}
Activity设置全屏
可以在<activity>标签上使用fullscreen主题,如android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"
也可以在java中布局之前使用
//隐藏标题栏,普通Activity直接用RequestWindowFeature方法 supportRequestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏状态栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
获取屏幕宽高
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Point sreenPoint = new Point();wm.getDefaultDisplay().getSize(sreenPoint);Log.e("m_tag", "屏幕宽度:" + sreenPoint.x + " 高度:" + sreenPoint.y);
0 0
- view 的绘制过程
- view的绘制流程
- View 的绘制流程
- View的绘制流程
- View的绘制过程
- View的绘制流程
- View的绘制流程
- 自定义view的绘制
- view的绘制过程
- View的绘制原理
- View的绘制流程
- View的绘制流程
- View的绘制流程
- View的绘制过程
- View的绘制
- view的绘制流程
- View的绘制流程
- View的基本绘制
- 可能有用的函数
- JS高级类,简单继承
- Linux 脚本攻略学习笔记8
- C++ HackerRank|Simple Text Editor
- 贪心算法之子段和,山东省第八届acm大赛J题company,SDUT3902
- view的绘制
- recyclerview的基本流程
- Java学习笔记----接口1
- linux系统忘记密码怎么办
- 方法的重载
- 小型工厂怎么玩转生产管理系统(MES)?
- 常见对象-把int数组拼接字符串的案例
- JAVA调用ORACLE的存储过程、函数的返回结果集
- LightOJ