android自定义View_1——Custom Drawing
来源:互联网 发布:java判断水仙花数 编辑:程序博客网 时间:2024/06/04 19:40
一:Override onDraw()
1.当覆盖了onDraw()方法后,需要一个Canvas变量,就是一个画布,他能画直线等各种形状,还能画bitmap等等。
当使用画布的时候,可以提供一个画笔:Paint。就是设置画出图形的一些特性,如颜色等。
二:创建图形对象
1.在android.graphics中提供了两大类:
1.Canvas:描述画什么。
2.Paint:怎么画。
2.比如,你想用Canvas一线,就可以定义一个Paint来设置这条线的颜色等属性,或是用Canvas画一个矩形的时候,
Paint可以定义一个颜色来填充矩形,或是不填充。
3.在画图形之前,可以定义多个Paint,并放在一个初始化函数中初始化:
4.在画之前初始化这些画笔是很必要的,因为初始化画笔是个很费资源的过程,如果将初始化过程放在了onDraw中,
用户界面就会显得有些呆滞,停顿的感觉。
二:处理layout事件
1.为了能适当的展示你的控件的大小,往往或通过计算屏幕的大小,密度等属性,来设置控件最终显示的大小。切记
千万不要自己以为控件就是那么大,要根据实际情况来设置控件的大小,还有为不同的排列方式,提供不同的布局。
2.view中提供了很多用于测量大小的方法,他们的大多数都不能overridden,如果没有特殊的需要,设置控件的大小
,只需要overridden中的onSizeChanged();
3.onSizeChanged()方法当,第一次给view赋值的时候,或是任何情况view的大小被改变的时候,都会调用此方法。
计算位置,计算尺寸,都需要在此方法中完成。
4.当设置view的大小的时候,layout manager会默认包含了view的padding值,所以必须控制padding的值,当给
view设置大小的时候:
5.如果你想更好的控制控件的大小,需要实现onMeasure方法,这个方法的两个参数表示父控件希望view的显示大小,
这两个值的大小是硬性标准还是建议值。下面的实例:设置控件的大小以其足够大来容纳内容:
注意:1.设置控件的大小需要考虑padding,正如上文提到过的,这是view的责任。
2.其中的resolveSizeAndState(int,int)方法用于计算view最终显示的大小高度。
其中的View.MeasureSpec有三个常量:
1.UNSPECIFIED:父控件没有对子view任何限制。
2.EXACTLY:父控件给了一个适当的大小给子view,当子view设置大小的时候,收到他的束缚。
3.AT_MOST:尽可能的扩展到指定的大小。
3.这个方法没有返回值,需要在最后强制性的调用setMeasureDimension(w,h)方法,否则在运行时会出现异常。
三:开始画了
1.一旦你完成了初始化工作,定义画笔,确定view的大小,你就可以通过实现onDraw()方法来画控件了。虽然每个控件不同,
但是有一些通用的东西:
1.画文字:调用 drawText()
,通过 setTypeface()设置字体,通过setColor()设置文字的颜色。
2.绘制基本形状:绘制矩形:drawRect(),绘制椭圆:
drawOval(),绘制弧线:
改变是否填充,是否描边等调用 drawArc()
setStyle()。
3.绘制更复杂的图形就需要使用Path类了,可以将多个线条和多个曲线添加到一个Path对象中,然后使用drawPath(),
绘制path对象。通过调用setStyle()来设置填充,描边等属性。
4.通过创建 LinearGradient来创建填充渐变对象,然后通过
setShader()将渐变对象设置到形状上。
5.用drawBitmap();对象来绘制图片。
- android自定义View_1——Custom Drawing
- Custom Drawing 自定义绘制
- Android 自定义View之自定义绘制(Custom Drawing)
- android自定义View之(二) Custom Drawing
- Custom Drawing
- Android_(自定义view_1之牛刀小试)
- Android API——自定义组件(Custom Components)
- android自定义View_0——Create a custom view class
- 自定义view_1,做一个自己的progressbar
- Custom Tooltips——自定义工具提示
- Custom Controls——自定义控件
- Custom Icon——自定义图标
- Custom Interactions——自定义交互式控件
- Custom Animation——自定义动画
- MonoTouch: Drawing custom progress bars.
- Android自定义对话框(Custom Dialog)
- Android学习笔记————初识控件自定义(Custom Components)
- 【Android Training UI】创建自定义Views(Lesson 2 - 自定义Drawing)
- Android桌面小组件的使用
- 如何在Qt中写自己的动态连接库
- Android-ViewPagerIndicator框架使用——使用概要
- Android-ViewPagerIndicator框架使用——Circle
- android自定义View_0——Create a custom view class
- android自定义View_1——Custom Drawing
- 开源地图OSM
- android自定义View_2——Making the View Interactive
- 1004. 成绩排名 (20)
- android自定义View_3——Optimizing the View
- android自定义View_4——自定义属性的格式选择
- Android-ViewPagerIndicator框架使用——IconPageIndicator
- Android-ViewPagerIndicator框架使用——LinePageIndicator
- ubifs文件系统的问题