Android开发之图形图像与动画(一)Paint和Canvas类学习
程序员文章站
2023-11-28 23:23:40
paint类 *paint类代表画笔,用来描述图形的颜色和风格,如线宽,颜色,透明度和填充效果等信息。 *使用paint类时,需要先创建该类的对象,可以通过该类的构造函数实...
paint类
*paint类代表画笔,用来描述图形的颜色和风格,如线宽,颜色,透明度和填充效果等信息。
*使用paint类时,需要先创建该类的对象,可以通过该类的构造函数实现。通常情况的实现代码是:
*paintpaint=newpaint();
*创建完paint对象后,可以通过该对象提供的方法对画笔的默认设置进行改变
canvas
*canvas类代表画布,通过该类提供的构造方法,可以绘制各种图形。
*通常情况下,要在android中绘图,需要先创建一个继承自view类的视图,并且在该类中重写它的ondraw方法,
*然后在显示绘图的activity中添加该视图
实现此实例的xml文件的定义如下:
<framelayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".draw_view"
>
<textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"/>
<com.example.draw_view.drawview
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</framelayout>
实现的源代码如下:
publicclassdrawviewextendsview{
publicdrawview(contextcontext,attributesetattrs){
super(context,attrs);
//todoauto-generatedconstructorstub
}
@override
protectedvoidondraw(canvascanvas){
//todoauto-generatedmethodstub
super.ondraw(canvas);
paintpaint=newpaint();
paint.setcolor(color.red);
paint.setshadowlayer(2,3,3,color.rgb(180,180,180));
canvas.drawrect(40,40,200,100,paint);
}
}
*paint类代表画笔,用来描述图形的颜色和风格,如线宽,颜色,透明度和填充效果等信息。
*使用paint类时,需要先创建该类的对象,可以通过该类的构造函数实现。通常情况的实现代码是:
*paintpaint=newpaint();
*创建完paint对象后,可以通过该对象提供的方法对画笔的默认设置进行改变
canvas
*canvas类代表画布,通过该类提供的构造方法,可以绘制各种图形。
*通常情况下,要在android中绘图,需要先创建一个继承自view类的视图,并且在该类中重写它的ondraw方法,
*然后在显示绘图的activity中添加该视图
实现此实例的xml文件的定义如下:
复制代码 代码如下:
<framelayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".draw_view"
>
<textview
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"/>
<com.example.draw_view.drawview
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</framelayout>
实现的源代码如下:
复制代码 代码如下:
publicclassdrawviewextendsview{
publicdrawview(contextcontext,attributesetattrs){
super(context,attrs);
//todoauto-generatedconstructorstub
}
@override
protectedvoidondraw(canvascanvas){
//todoauto-generatedmethodstub
super.ondraw(canvas);
paintpaint=newpaint();
paint.setcolor(color.red);
paint.setshadowlayer(2,3,3,color.rgb(180,180,180));
canvas.drawrect(40,40,200,100,paint);
}
}