view的应用

自定义View的原则:
如果系统View能够完成的尽量使用系统控件,新的自定义View容易引 起 BUG-
#常用Android控件的介绍。
Button、TextView、CheckBox、ListView等.
#自定义view的有四种形式:
(_)组合View:
组合控件,顾名思义就是将一些系统控件组合起来形成一 个新的控件,形成UI特定的效果。比如很多应用中普遍使用的标题栏 控件,其实用的就是组合控件,达到形成自己统一的风格。
(二) 自定义View:
自绘控件就是继承View,自定义其中的内容,并在View的 onDraw方法中按照规定完成绘制功能。
(三) 继承ViewGmup:
就是继承已有的ViewGroup,创建新的ViewGroup。
(四) 继承原有的系统控件,例如Listview或者ViewPager。
在保留原有特性的基础上,增加或者减少原有的特性。
MeasureSpec的使用:
MODE:分为一下三种类别,
AT_MOST:子容器可以是声明大小内的任意大小
EXACTLY:父容器已经为子容器确定的大小,子容器应该遵守
UNSPECIFIED:父容器对子容器没有做任何限制,子容器可以任意大小

    SIZE是父容器为子容器提供的大小
    当MODE为AT_MOST时,SIZE大小为父容器所能提供的最大值。
    当MODE为EXACTLY时,SIZE为父容器提供的限制值。
    当MODE为UNSPECIFIED时,大小为0,SIZE完全由子容器的大小决定。
    Paint常用绘制方法:
    void drawRect(RectF rect, Paint paint) : 绘制区域,参数为RectF的区域。
    void drawOval(RectF oval, Paint paint) : 绘制矩形的内切椭圆。
    void drawCircle(float cx, float cy, float radius, Paint paint) : 绘制圆形。cx和cy是圆心坐标,radius是半径长度。
    void drawArc(RectF oval, float startAngle, float sweepAngle. boolean useCenter, Paint paint) : 绘制圆弧形,也是以矩形的内切椭圆为标准。其中,startAngle为起始角度,sweepAngle为弧度大小,useCenter为true,则是绘制一个扇行,为false,则只是一段圆弧。(ps:startAngle为0时,是圆形钟表3点钟方向)。
    void drawPath(Path path, Paint paint) : 根据给定的path,绘制连线。
    void drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) : 贴图,参数bitmap是要进行绘制的bitmap对象,参数src是指- bitmap的源区域(一般为null),dst是bitmap的目标区域,paint是画笔,可为null。
    void drawLine(float startX, float startY, float stopX, float stopY, Paint paint) : 根据给定的起点和结束点之间绘制连线。
    void drawPoint(float x, float y, Paint paint) : 根据给定的坐标,绘制点。
    void drawText(String text, float x, float y, Paint paint) : 根据给定的坐标,绘制文字。其中,x是文本起始的x轴坐标,y是文本纵向结束的y轴坐标。

Paint.
setColor(int color) 设置颜色
setAlpha(int a) : 设置透明度。
setShader(Shader shader) : 设置Paint的填充效果。
Paint.setStrokeWidth(float width) 设置线条宽度
Paint.setTextSize(float textSize) 设置文字大小
Paint.setAntiAlias(boolean aa) 设置抗锯齿开关
Paint.setDither(boolean dither) 设置防抖动开关

图片绘制
setARGB(int a, int r, int g, int b) ; - paint. setARGB(100, 255, 0, 0);
设置绘制的颜色,a代表透明度,r, g, b代表颜色值。
setAlpha(int a);
设置绘制图形的透明度。
setColor (int color);
paint. setColor(Color. parseColor( "#009688” )); 设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。
setAntiAlias(boolean aa);
设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。
oatDi 十har (heel aan di thpT*)
设定是否使用图像抖动处理,’会使绘制出来的图片颜色更加平滑和饱满, 图像更加清晰
setFilterBitmap(boolean filter);
如果该项设豊为true,则图像在动画进行中会滤掉对Bitmap图像的优化操 作,加快显示
速度,本设置项依赖于dither和xfennode的设置
setMaskFilter(MaskFilter maskfilter);
设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立 体等
setColorFilter(ColorFilter colorfilter);
设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果
setPathEffect(PathEffect effect);
设置绘制路径的效果,如点画线等
setShader(Shader shader);
设置图像效果,使用Shader可以绘制出各种渐变效果
setShadowLayer(float radius , float dx, float dy, int color): 在图形下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为 阴影在x轴和y轴上的距离,color为阴影的颜色
setStrokeCap(Paint. Cap cap);
当画笔样式为STROKE或FILL_0R_STR0KE时,设置笔刷的图形样式,如圆形 样式
Cap. ROUND,或方形样式Cap. SQUARE
setSrokeJoin(Paint. Join join):
设置绘制时各图形的结合方式,如平滑效果等
setXfermode(Xfermode xfermode):
设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮 的擦除效果

文本绘制
setFakeBoldText(boolean fakeBoldText);
模拟实现粗体文字,设置在小字体上效果会非常差
setSubpixelText(boolean subpixelText);
设置该项为true,将有助于文本在LCD屏幕上的显示效果
setTextAlign(Paint. Align align);
设置绘制文字的对齐方向
setTextScaleX(float scaleX);
设置绘制文字x轴的缩放比例,可以实现文字的拉伸的效果
setTextSize(float textSize):
设置绘制文字的字号大小
setTextSkewX(float skewX);
设置斜体文字,skewX为倾斜孤度
setTypeface(Typeface typeface):
设STypeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体 等
setUnderlineText(boolean underlineText); 设置带有下划线的文字效果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值