Android自定义view 你所需要知道的基本函数总结
Android自定义view 你所需要知道的基本函数
首先 往Canvas上面draw需要一个Paint。 画笔常用的函数有哪些呢。由于木有调试环境,函数基本上默写,有错请评论提出,蟹蟹!
Paint p = new Paint(); //设置画笔的颜色 p.setColor(Color.parseColor("#2EA4F2")); //设置画笔的风格:全部填充FILL 只画轮廓STROKE p.setStyle(Paint.Style.STROKE); //设置画笔的宽度 p.setStrokeWidth(8); //设置是否抗锯齿 p.setAntiAlias(true);
//设置文字大小 p.setTextSize(30); //测量字符串的长度 p.MeasureText("Hello World");
当我们有了画笔后,就可以绘制基本图形。
线:
//绘制一条从0,0到100,100的线 canvas.drawLine(0,0,100,100,p); 三角形&多边形 是用Path类实现的。Path类提供了点绘制线的功能,看例子 [java] view plain copy 在CODE上查看代码片派生到我的代码片 path.MoveTo(0,0);//给定path的起点 path.LineTo(10,10);//往10,10绘制一条路径 path.LineTo(5,3);//继续从10,10往5,3绘制一条路径 path.close;//将绘制的线形成封闭空间 canvas.drawPath(path,p);
矩形:
//画一个矩形,左上角的坐标为0,0 右下角的坐标为100,50 canvas.drawRect(0,0,100,50,p);
圆角矩形:
//一个矩形 RectF rectF = new RectF(0,0,100,50); //画一个圆角矩形,大小为rectF,20,20分表表示左边圆角的半径和右边圆角的半径 canvas.drawRoundRect(RectF,20,20,p);
圆形
//画一个圆,圆心为50,50 半径为100 canvas.drawCircle(50,50,100,p);
弧形 注意这里第二个参数,是从三点钟方向为0°计算,所以想从12点中方向开始绘制,那么就是270°。第四个参数是决定是否经过圆心(自己改变一下这个参数就知道区别了)。
//画一个弧,弧所在矩形为rectF 从270°开始,画90° 不经过圆心 canvas.drawArc(rectF,270,90,false,p);
以上基本上是自定义view所用到的最基本的函数,欢迎补充。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享
如果想在自定义的View上面显示Button 等View组件需要完成如下任务 1.在自定义View的类中覆盖父类的构造(注意是2个参数的) 复制代码 代码如下: public class MyView2 extends View{ public MyView2(Context context,AttributeSet att) {super(context,att); } public void onDraw(Canvas c) { // 这里绘制你要的内容 } } 2.定义布局文件 复制代码
-
Android自定义View实现带数字的进度条实例代码
第一步.效果展示 图1.蓝色的进度条 图2.红色的进度条 图3.多条颜色不同的进度条 图4.多条颜色不同的进度条 第二步.自定义ProgressBar实现带数字的进度条 0.项目结构 如上图所示:library项目为自定义的带数字的进度条NumberProgressBar的具体实现,demo项目为示例项目以工程依赖的方式引用library项目,然后使用自定义的带数字的进度条NumberProgressBar来做展示 如上图所示:自定义的带数字的进度条的library项目的结构图 如上图所示:de
-
Android自定义View之酷炫圆环(二)
先看下最终的效果 静态: 动态: 一.开始实现 新建一个DoughnutProgress继承View public class DoughnutProgress extends View { } 先给出一些常量.变量以及公共方法的代码,方便理解后面的代码 private static final int DEFAULT_MIN_WIDTH = 400; //View默认最小宽度 private static final int RED = 230, GREEN = 85, BLUE = 35;
-
Android自定义View实现竖直跑马灯效果案例解析
首先给出跑马灯效果图 中间的色块是因为视频转成GIF造成的失真,自动忽略哈. 大家知道,横向的跑马灯android自带的TextView就可以实现,详情请百度[Android跑马灯效果].但是竖直的跑马灯效果原生Android是不支持的.网上也有很多网友实现了自定义的效果,但是我一贯是不喜欢看别人的代码,所以这篇博客的思路完全是我自己的想法哈. 首先,我们需要给自定义的控件梳理一下格局,如下图所示: 1.首先我们将控件分为三个区块,上面绿色部分为消失不可见的块,中间黑色部分为可见区域,下面红色部
-
Android自定义view制作绚丽的验证码
废话不多说了,先给大家展示下自定义view效果图,如果大家觉得还不错的话,请继续往下阅读. 怎么样,这种验证码是不是很常见呢,下面我们就自己动手实现这种效果,自己动手,丰衣足食,哈哈~ 一. 自定义view的步骤 自定义view一直被认为android进阶通向高手的必经之路,其实自定义view好简单,自定义view真正难的是如何绘制出高难度的图形,这需要有好的数学功底(后悔没有好好学数学了~),因为绘制图形经常要计算坐标点及类似的几何变换等等.自定义view通常只需要以下几个步骤: 写一个类继承
-
Android自定义View实现广告信息上下滚动效果
先看看效果: 实现代码: public class ScrollBanner extends LinearLayout { private TextView mBannerTV1; private TextView mBannerTV2; private Handler handler; private boolean isShow; private int startY1, endY1, startY2, endY2; private Runnable runnable; private Li
-
Android 自定义View的使用介绍
在项目开发中,可能系统自带的一些widget不能满足我们的需求,这时就需要自定义View. 通过查看系统中的常用widget如Button,TextView,EditText,他们都继承自View,所以我们在继承自定义View的时候也自然的需要继承View.1.首先新建一个类LView继承自View 复制代码 代码如下: public class LView extends View { private Paint paint; public LView(Context context) {
-
Android自定义view 你所需要知道的基本函数总结
Android自定义view 你所需要知道的基本函数 首先 往Canvas上面draw需要一个Paint. 画笔常用的函数有哪些呢.由于木有调试环境,函数基本上默写,有错请评论提出,蟹蟹! Paint p = new Paint(); //设置画笔的颜色 p.setColor(Color.parseColor("#2EA4F2")); //设置画笔的风格:全部填充FILL 只画轮廓STROKE p.setStyle(Paint.Style.STROKE); //设置画笔的宽度 p.se
-
Android自定义view实现阻尼效果的加载动画
效果: 需要知识: 1. 二次贝塞尔曲线 2. 动画知识 3. 基础自定义view知识 先来解释下什么叫阻尼运动 阻尼振动是指,由于振动系统受到摩擦和介质阻力或其他能耗而使振幅随时间逐渐衰减的振动,又称减幅振动.衰减振动.[1] 不论是弹簧振子还是单摆由于外界的摩擦和介质阻力总是存在,在振动过程中要不断克服外界阻力做功,消耗能量,振幅就会逐渐减小,经过一段时间,振动就会完全停下来.这种振幅随时间减小的振动称为阻尼振动.因为振幅与振动的能量有关,阻尼振动也就是能量不断减少的振动.阻尼振动是非简谐运
-
Android 自定义View 密码框实例代码
暴露您view中所有影响可见外观的属性或者行为. •通过XML添加和设置样式 •通过元素的属性来控制其外观和行为,支持和重要事件交流的事件监听器 详细步骤见:Android 自定义View步骤 效果图展示: 支持的样式 可以通过XML定义影响外边和行为的属性如下 边框圆角值,边框颜色,分割线颜色,边框宽度,密码长度,密码大小,密码颜色 <declare-styleable name="PasswordInputView"> <attr name="borde
-
Android自定义View详解
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24252901 很多的Android入门程序猿来说对于Android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路,所有准备在自定义View上面花一些功夫,多写一些文章.先总结下自定义View的步骤: 1.自定义View的属性 2.在View的构造方法中获得我们自定义的属性 [ 3.重写onMesure ] 4.重写onDraw 我把3用[]标出了,所以说3不一
-
Android自定义View中attrs.xml的实例详解
Android自定义View中attrs.xml的实例详解 我们在自定义View的时候通常需要先完成attrs.xml文件 在values中定义一个attrs.xml 然后添加相关属性 这一篇先详细介绍一下attrs.xml的属性. <?xml version="1.0" encoding="utf-8"?> <resources> //自定义属性名,定义公共属性 <attr name="titleText" for
-
Android自定义View 仿QQ侧滑菜单的实现代码
先看看QQ的侧滑效果 分析一下 先上原理图(不知道能否表达的清楚 ==) -首先这里使用了 Android 的HorizontalScrollView 水平滑动布局作为容器,当然我们需要继承它自定义一个侧滑视图 - 这个容器里面有一个父布局(一般用LinerLayout,本demo用的是),这个父布局里面有且只有两个子控件(布局),初始状态菜单页的位置在Y轴上存在偏移这样可以就可以形成主页叠在菜单页的上方的视觉效果:然后在滑动的过程程中 逐渐修正偏移,最后菜单页和主页并排排列.原理搞清了实现起来
-
Android自定义View绘制随机生成图片验证码
本篇文章讲的是Android自定义View之随机生成图片验证码,开发中我们会经常需要随机生成图片验证码,但是这个是其次,主要还是想总结一些自定义View的开发过程以及一些需要注意的地方. 按照惯例先看看效果图: 一.先总结下自定义View的步骤: 1.自定义View的属性 2.在View的构造方法中获得我们自定义的属性 3.重写onMesure 4.重写onDraw 其中onMesure方法不一定要重写,但大部分情况下还是需要重写的 二.View 的几个构造函数 1.public CustomV
-
Android自定义View绘制的方法及过程(二)
上一篇<Android 自定义View(一) Paint.Rect.Canvas介绍>讲了最基础的如何自定义一个View,以及View用到的一些工具类.下面讲下View绘制的方法及过程 public class MyView extends View { private String TAG = "--------MyView"; private int width, height; public MyView(Context context, AttributeSet a
-
Android自定义View实现等级滑动条的实例
Android自定义View实现等级滑动条的实例 实现效果图: 思路: 首先绘制直线,然后等分直线绘制点: 绘制点的时候把X值存到集合中. 然后绘制背景图片,以及图片上的数字. 点击事件down的时候,换小图片为大图片.move的时候跟随手指移动. up的时候根据此时的X计算最近的集合中的点,然后自动吸附回去. 1,自定义属性 <?xml version="1.0" encoding="utf-8"?> <resources> <de
-
Android自定义View实现loading动画加载效果
项目开发中对Loading的处理是比较常见的,安卓系统提供的不太美观,引入第三发又太麻烦,这时候自己定义View来实现这个效果,并且进行封装抽取给项目提供统一的loading样式是最好的解决方式了. 先自定义一个View,继承自LinearLayout,在Layout中,添加布局控件 /** * Created by xiedong on 2017/3/7. */ public class Loading_view extends LinearLayout { private Context m
随机推荐
- angular中的http拦截器Interceptors的实现
- AngularJS $modal弹出框实例代码
- 如何使用vuejs实现更好的Form validation?
- VBS教程:方法-GetSpecialFolder 方法
- 详解WordPress中用于更新和获取用户选项数据的PHP函数
- PHP处理Json字符串解码返回NULL的解决方法
- 使用RPM包安装MySQL 5.7.18的教程
- Android实现下拉菜单Spinner效果
- 忘记ftp密码使用python ftplib库暴力破解密码的方法示例
- jquery ajax 登录验证实现代码
- 分享Ajax创建简单实例代码
- 重构、标准、布局
- js查错流程归纳
- 简述JavaScript对传统文档对象模型的支持
- 弹出广告特效代码(一个IP只弹出一次)
- 微信小程序 scroll-view组件实现列表页实例代码
- 一网打尽WinXP系统安全实用技巧
- Java设计模式之组合模式(Composite模式)介绍
- C#编程实现取整和取余的方法
- 浅析PHP绘图技术