Android 基础之View中常见的API

该篇文章记录本人学习和使用Android过程中的关于View的各种我所不熟悉但是很有用的Api


1. android:clipToPadding

    常用于RecyclerView中,默认为true,用途是设置是否要让该view的父布局去裁剪掉该view的paddinng值,

效果就是,假若RecyclerView的xml中设置了android:paddingTop = "10dp",

    这时假若设置 clipToPadding为ture,即裁剪掉padding值,那么和我们日常观察的一样,就是仍然有边距进行滑动;

    这时假若设置clipToPadding为 false ,那么之前空白的padding会顶上去的,往下拉padding又会呈现了

    

这个之后解决RecyclerView的滑动时效果还是很不错的


2.  canvas,clipRect(left,top,right,bottom)

    该Api用于View中的canvas绘制,该api用来表示裁剪画布的可见区域,也就是说后面画的内容只在这款区域进行显示。

作用说的很明显了,要想更加了解可以浏览这位博主的  android绘图canvas.clipRect()方法的作用

可视区域的显示还是显得尤为重要的。

3. canvas.save( ) 额 canvas.restore( )

- canvas.save( ):用来保存Canvas的状态 

- canvas.restore( ):用来恢复Canvas旋转、缩放等之后的状态,当和canvas.save( )一起使用时,恢复到canvas.save( )保存时的状态。

        Paint paint = new Paint();
        paint.setColor(Color.RED);
        paint.setStrokeWidth(5);
        paint.setStyle(Paint.Style.FILL);
        paint.setAntiAlias(true);
        canvas.rotate(90f,canvas.getWidth()/2,canvas.getHeight()/2);// 由于逆时针旋转画布,所以看见的是竖直的
        canvas.drawLine(50,300,400,300,paint);


        canvas.save();
        Paint paint = new Paint();
        paint.setColor(Color.RED);
        paint.setStrokeWidth(5);
        paint.setStyle(Paint.Style.FILL);
        paint.setAntiAlias(true);
        // 以画布的中心点旋转 
        canvas.rotate(90f,canvas.getWidth()/2,canvas.getHeight()/2);
        // 恢复画布的状态 即还原到save()的状态,即为画布为竖直
        canvas.restore();
        // 横向的一条线
        canvas.drawLine(50,300,400,300,paint);
4. layoutParams

    view.getLayoutParams 返回的类型是该View的父布局的类型.params  , 可以根据返回的params来获得该view的margin信息, 信息包本身就是子控件向父布局申请控件大小的,包括宽高包括各种margin等。






猜你喜欢

转载自blog.csdn.net/crazyzhangxl/article/details/81044640