最后,复写onMeasure办法,把super办法去掉落:
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- setMeasuredDimension(MeasureUtils.measureView(widthMeasureSpec, 200),
- MeasureUtils.measureView(heightMeasureSpec, 200)
- );
- }
View的绘制-onDraw
View绘制,须要控制Android中View的坐标体系:

View的坐标体系是以左上角为坐标原点,向右为X轴正偏向,向下为Y轴正偏向。
View绘制,主如果经由过程Android的2D画图机制来完成,机会是onDraw办法中,个中包含画布Canvas,画笔Paint。下面给出示例代码。相干API不是介绍的重点,重点是Canvas的save和restore办法,经由过程save今后可以对画布进行一些放大年夜缩小扭转倾斜等操作,这两个办法一般配套应用,个中save的调用次数可以多于restore。
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- Bitmap bitmap = ImageUtils.drawable2Bitmap(mDrawable);
- canvas.drawBitmap(bitmap, getLeft(), getTop(), mPaint);
- canvas.save();
- //留意,这里的扭转是指画布的扭转
- canvas.rotate(90);
- mPaint.setColor(Color.parseColor("#FF4081"));
- mPaint.setTextSize(30);
- canvas.drawText("测试", 100, -100, mPaint);
- canvas.restore();
- }
View的地位-onLayout
8、机能优化
构造优化
1. 应用include标签,经由过程layout属性复竽暌姑雷同的构造。
- <include
- android:id="@+id/v_test"
- layout="@layout/include_view" />
3. 应用ViewStub来进行构造的延迟加载一些不是立时就用到的构造。例如列表页中,列表在没有拿到数据之前不加载,如许做可以使UI变得流畅。
- <ViewStub
- android:id="@+id/v_stub"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout="@layout/view_stub" />
- //须要手动调用inflate办法,构造才会显示出来。
- stub.inflate();
- //个中setVisibility在底层也是会调用inflate办法
推荐阅读
Github年度报告盘点:TensorFlow无疑是最大赢家!
开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散 以前十年,Github所有开辟者共享2500万公共仓库的代码,用户遍布200多个国度,应用人数达到了2400万,有6700万Repo,新增了10亿提>>>详细阅读
本文标题:Android面试17个知识点总结宝典
地址:http://www.17bianji.com/lsqh/39609.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示