随笔分类 -  Android 自定义view

摘要:灵活使用 Path ,可以画出复杂图形,就像美术生在画板上画复杂图形一样。程序员也可以用代码实现。 1.样板图片 这个是个温度计,它是静态的,温度值是动态变化的,所以要自定义个view.动态显示值,温度过高、过低时有警示功能。 2.代码 https://github.com/f9q/tempView 阅读全文
posted @ 2019-06-07 23:15 f9q 阅读(1001) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2018-12-31 16:37 f9q 阅读(18) 评论(0) 推荐(0) 编辑
摘要:1.演示,代码 下载示例apk 下载项目 : https://gitee.com/xi/LImage.git 2.遇到的问题 想省内存,不太可能 只支持拖拽手势,不支持缩放相对简单,解码view对应的区域就可以。 不支持缩放好像说不过去,同时支持缩放+拖拽后变复杂,如转屏后的位置,指定锚点缩放,缩放 阅读全文
posted @ 2018-11-11 22:11 f9q 阅读(661) 评论(0) 推荐(0) 编辑
摘要:1.添加attrs.xml文件 在android studio下,在res/values 下新建资源文件attrs.xml 2.添加自定义的属性 在attrs.xml中添加属性,如下。其中format是属性的类型,如float,color,boolean,dimension 3.在布局文件中使用自定 阅读全文
posted @ 2016-11-13 16:04 f9q 阅读(297) 评论(0) 推荐(0) 编辑
摘要:代码如下: NinePath也可以绘制普通非.9图片。 阅读全文
posted @ 2016-08-11 22:45 f9q 阅读(364) 评论(0) 推荐(0) 编辑
摘要:1.代码示例 1.1 效果 原图 : 其尺寸为162 x 251,示例中的红点是变形的锚点. 变形之后: 1.2 代码 2. 关于pre,set,post变形方式的区别 pre是在队列最前面插入,post是在队列最后面追加,而set先清空队列在添加。 2.1 示例1 执行顺序:translate(5 阅读全文
posted @ 2016-08-02 16:38 f9q 阅读(590) 评论(0) 推荐(0) 编辑
摘要:1,onSizeChanged 触发: 当view的第一次分配大小或以后大小改变时的产生的事件。 工作: 计算绘制内容的位置,面积等相关值。避免每次在onDraw中计算了。 注意: 计算时不要忘记padding。这是个责任。 示范: 2,onMeasure 触发: 当父控件布局时,要测量子控件的大小 阅读全文
posted @ 2016-06-06 22:48 f9q 阅读(1025) 评论(0) 推荐(0) 编辑
摘要:1.渲染脚本官网 https://developer.android.com/guide/topics/renderscript/compute 2.高斯模糊 ScriptIntrinsicBlur 2.1 添加api 在module 的 build.gradle 文件中添加选项,注意是 defau 阅读全文
posted @ 2016-02-18 23:47 f9q 阅读(353) 评论(0) 推荐(0) 编辑
摘要:参考: http://www.cnblogs.com/xiaorenwu702/p/5185436.html 当外层容器组件调用其内部的某个组件view1.measure(xxx)时,view1的onMeasure(xxx)就被调用。 1,measure >onMeasure >setMeasure 阅读全文
posted @ 2016-02-16 21:49 f9q 阅读(1536) 评论(0) 推荐(0) 编辑
摘要:Custom Components 1.In this document The Basic Approach Fully Customized Components Compound Controls Modifying an Existing View Type Android offers a 阅读全文
posted @ 2016-02-16 17:09 f9q 阅读(533) 评论(0) 推荐(0) 编辑
摘要:1.Activity,ViewGroup,View的关系 本文按层次比喻,ViewGroup与其中的View的关系不是父子,而是上下层。父子描述继承关系更准确些。 最下层是Activity,Activity上面是一系列ViewGroup,ViewGroup上面是View。 事件总是从Activity 阅读全文
posted @ 2016-02-02 16:38 f9q 阅读(368) 评论(0) 推荐(0) 编辑
摘要:1.问题 在已有的图层上绘图将会在其上面添加一层新的图层。 如果新的图层是完全不透明的,那么它将完全遮挡住下面的图层,而setXfermode就可以来解决这个问题。这个函数设置两个图层相交时的模式 . 2.示例 其中PorterDuffXfermode有很多样式,下面是各种样式效果图。 3.Port 阅读全文
posted @ 2015-12-11 20:47 f9q 阅读(850) 评论(0) 推荐(0) 编辑
摘要:1.Shader 返回绘图过程中重复色块的基类,相关方法:Paint::setShader(Shader shader) 2.MaskFilter 实现alpha通道mask转换的基类,相关方法:Paint::setMaskFilter(MaskFilter maskfilter) 3.ColorF 阅读全文
posted @ 2015-12-11 20:29 f9q 阅读(232) 评论(0) 推荐(0) 编辑
摘要:画布Canvas 在Android下进行2D绘图需要Canvas类的支持,它位于"android.graphics.Canvas"包下,直译过来为画布的意思,用于完成在View上的绘图。 Canvas为提供了两个构造函数: Canvas():创建一个空的Canvas对象。 Canvas(Bitmap 阅读全文
posted @ 2015-12-11 20:18 f9q 阅读(229) 评论(0) 推荐(0) 编辑
摘要:1.前言 本文以Canvas类的下面这个函数为基础,它用来在画布上绘制文本。 2.效果如图 3.按效果图说明 Align.CENTER 表示把文字的水平中间位置放在原点上。 Align.RIGHT 表示文字在原点的右侧。 Align.LEFT 表示文字在原点的左侧。(默认) 阅读全文
posted @ 2015-12-11 17:16 f9q 阅读(212) 评论(0) 推荐(0) 编辑
摘要:效果 代码: 注意其中画弧形时要指定一个矩形区域,画文字时各种线的位置 阅读全文
posted @ 2015-12-11 16:56 f9q 阅读(445) 评论(0) 推荐(0) 编辑
摘要:1,继承View , ViewGroup,或TextView等等 2,绘制相关的api, canvas 画布, paint 画笔 2,重写重要的函数(注意这个顺序) onMeasure 属于View的方法,用来测量自己及其中绘制内容的定宽度和高度 onLayout 布局其内部view的位置和大小 o 阅读全文
posted @ 2015-12-11 16:39 f9q 阅读(344) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示