自定义控件形状

来源:互联网 发布:php gzip 优缺点 编辑:程序博客网 时间:2024/05/21 11:05
继承View类或其子类
**必须具有两个参数的构造函数
>>只会呈现最终结果,在自定义View类中不能实现动画


自定义形状:
重写两个方法:
一.onMeasure(int widthMeasureSpec, int heightMeasureSpec) //测量大小,两个参数分别是宽和高的尺寸以及模式AT_MOST,EXACTLY,UNSPECIFIED(分别对应match_parent,wrap_content及无指定)
1.setMeasuredDimension(width,height);//设置组件尺寸
2.MeasureSpec.getMode(measuerSpec)//获取指定的模式
3.MeasureSpec.getSize(measuerSpec)//获取指定的尺寸

二.onDraw(Canvas canvas)//绘制组件形状,参数用来呈现形状的画板
1.Bitmap bitmap = ((BitmapDrawable) getDrawable()).getBitmap();//获取图片资源
2.创建画笔
Paint paint = new Paint();
        paint.setAntiAlias(true);//抗锯齿
        paint.setFilterBitmap(true);//滤波
        paint.setDither(true);//色彩震动
        paint.setColor(Color.parseColor("#B2B499"));//颜色
        * paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));//图像混合模式,如SRC_IN[src(前景) in dst(背景)] 前景在背景内部(前景覆盖在背景位图之上),已经画出的位图为背景,还未画出将要画出的为前景 
**完成图像混合以后要paint.setXfermode(null) '.'和空白画板src_in交集为空不会留下任何痕迹
        
        2.创建画板
        Canvas canvas = new Canvas(bitmap)//参数为画板的图纸,画板所有的操作都是对该bitmap
        canvas.drawCircle(radius/2, radius/2, radius/2, paint);//画圆
        canvas.drawRect(rect,paint);//画矩形
        canvas.drawBitmap(output,rect1, rect2,paint);//画位图
Rect rect1=new Rect(0,0,600,900);//第一个参数对src操作,从源图中扣取内容
Rect rect2=new Rect(0,0,999,900);//第二个参数对dst操作,指定放置位置及大小(和扣取尺寸不一致时将扣取内容伸缩)


相关类及方法:
一.Bitmap 
1.Bitmap.createBitmap(w, w,Bitmap.Config.ARGB_8888)//创建空白Bitmap,第三个参数为清晰度
2.Bitmap.createScaledBitmap(bitmap,wight,hight,false);//创建缩放位图,第一个参数为源图片,最后一个参数功能未知
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子咳嗽发烧怎么办最有效 孩子咳嗽打哈切流鼻涕发烧怎么办 孩子香蕉吃多了怎么办 80多岁老人发烧怎么办 小孩香蕉吃多了怎么办 7个月宝宝缺钙怎么办 宝宝脖子被汗淹到红了脱皮怎么办? 小儿出汗多咳嗽怎么办吃什么 牛高烧不退怎么办最好 猪体温低不吃食怎么办 小孩发烧咳嗽怎么办吃什么药 大晚上发烧39度怎么办 胃受凉了老打嗝怎么办 大人发低烧怎么办如何退烧 吃了退热药不退热怎么办 猪持续高烧不退怎么办 猪感冒了不吃食怎么办 6岁儿童发烧38度怎么办 5岁儿童发烧38度怎么办 7岁儿童发烧38度怎么办 儿童发烧到38度怎么办 4岁儿童发烧38度怎么办 9岁儿童发烧38度怎么办 5儿童发烧38度怎么办 咳嗽了20多天怎么办 嘴角烂了怎么办涂什么药 感冒发烧到39度怎么办 6岁宝宝发烧头痛怎么办 生完孩子耻骨疼怎么办 顺产底下外阴红肿伤口流脓怎么办 产后便秘怎么办什么方法最有效 一周岁宝宝拉肚怎么办 三岁宝宝拉水怎么办 喝了过期的青汁怎么办 吃了黑心的苹果怎么办 新生儿两天没拉大便怎么办 贝亲奶瓶不漏怎么办 满月婴儿吃多了怎么办 婴儿吃撑了哭闹怎么办 新生儿吃撑了怎么办啊 新生儿吃了奶粉不吃奶怎么办