8.2.12 drawArc方法:绘制圆弧



http://book.51cto.com/art/201204/328276.htm

http://book.51cto.com/art/201204/328276.htm

http://book.51cto.com/art/201204/328276.htm

http://book.51cto.com/art/201204/328276.htmhttp://book.51cto.com/art/201204/328276.htm





8.2.12 drawArc方法:绘制圆弧

2012-04-11 12:40 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第8章Android绘图,本章详细介绍了Paint类和Canvas类中的方法,包括点、线、矩形、圆、椭圆、字符串和图像等各种对象的绘制。通过这些方法,开发者可以美化自己的Android应用程序,开发更绚丽多彩的界面效果。本节为大家介绍drawArc方法:绘制圆弧。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

8.2.12  drawArc方法:绘制圆弧

【功能说明】该方法用于在画布上绘制圆弧,通过指定圆弧所在的椭圆对象、起始角度、终止角度来实现。该方法是绘制圆弧的主要方法。

【基本语法】public void drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)

参数说明

oval:圆弧所在的椭圆对象。

startAngle:圆弧的起始角度。

sweepAngle:圆弧的角度。

useCenter:是否显示半径连线,true表示显示圆弧与圆心的半径连线,false表示不显示。

paint:绘制时所使用的画笔。

【实例演示】下面通过代码来演示如何在画布上绘制圆弧。

    
    
    
    
  1. protected void onDraw(Canvas canvas) {  
  2.     // TODO Auto-generated method stub  
  3.     super.onDraw(canvas);  
  4.     paint.setAntiAlias(true);                       //设置画笔为无锯齿  
  5.     paint.setColor(Color.BLACK);                    //设置画笔颜色  
  6.     canvas.drawColor(Color.WHITE);                  //白色背景  
  7.     paint.setStrokeWidth((float) 3.0);              //线宽  
  8.     paint.setStyle(Style.STROKE);  
  9.       
  10.     RectF oval=new RectF();                     //RectF对象  
  11.     oval.left=100;                              //左边  
  12.     oval.top=100;                                   //上边  
  13.     oval.right=400;                             //右边  
  14.     oval.bottom=300;                                //下边  
  15.     canvas.drawArc(oval, 225, 90, false, paint);    //绘制圆弧  
  16.       
  17.     //RectF oval=new RectF();                       //RectF对象  
  18.     oval.left=100;                              //左边  
  19.     oval.top=400;                                   //上边  
  20.     oval.right=400;                             //右边  
  21.     oval.bottom=700;                                //下边  
  22.     canvas.drawArc(oval, 200, 135, true, paint);    //绘制圆弧  
  23. }  

在这段代码中,首先设置了Paint画笔的颜色,并设置Canvas画布为白色背景。接着设置画笔的线宽以及空心效果。然后,定义一个RectF对象,并设置了其坐标,调用drawArc方法绘制第一个圆弧,这里设置不显示半径连线。最后,重新设置了RectF对象坐标,调用drawArc方法绘制第二个圆弧,这里设置显示半径连线。读者运行这段代码,可以在手机屏幕上看到如图8.22所示的显示效果。

8.2.12 drawArc方法:绘制圆弧_第1张图片 
图8.22  绘制圆弧
【责任编辑: book TEL:(010)68476606】













8.2.13 drawText方法:绘制字符串

2012-04-11 12:40 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第8章Android绘图,本章详细介绍了Paint类和Canvas类中的方法,包括点、线、矩形、圆、椭圆、字符串和图像等各种对象的绘制。通过这些方法,开发者可以美化自己的Android应用程序,开发更绚丽多彩的界面效果。本节为大家介绍drawText方法:绘制字符串。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

8.2.13  drawText方法:绘制字符串

【功能说明】该方法用于在画布上绘制字符串,通过指定字符串的内容和显示的位置来实现。在画布上绘制字符串是经常用到的操作,Android系统提供了非常灵活的绘制字符串的方法,可以根据不同的需要调用不同的方法来实现。字体的大小、样式等信息都需要在Paint画笔中来指定。

【基本语法】drawText方法可以采用如下几种形式:

public void drawText (String text, float x, float y, Paint paint)

public void drawText (char[] text, int index, int count, float x, float y, Paint paint)

public void drawText (CharSequence text, int start, int end, float x, float y, Paint paint)

public void drawText (String text, int start, int end, float x, float y, Paint paint)

参数说明

text:字符串内容,可以采用String格式,也可以采用char字符数组形式。

x:显示位置的x坐标。

y:显示位置的y坐标。

index:显示的起始字符位置。

count:显示字符的个数。

start:显示的起始字符位置。

end:显示的终止字符位置。

paint:绘制时所使用的画笔。

【实例演示】下面通过代码来演示如何在画布上绘制字符串。

       
       
       
       
  1. protected void onDraw(Canvas canvas) {  
  2.     // TODO Auto-generated method stub  
  3.     super.onDraw(canvas);  
  4.     paint.setAntiAlias(true);                                   //设置画笔为无锯齿  
  5.     paint.setColor(Color.BLACK);                                //设置画笔颜色  
  6.     canvas.drawColor(Color.WHITE);                              //白色背景  
  7.     paint.setTextSize((float) 30.0);                            //设置字体大小  
  8.       
  9.     String str="Android应用程序开发";                         //字符串  
  10.     char[] ch={'H','e','l','l','o',' ','A','n','d','r','o','i','d'};    //字符数组  
  11.       
  12.     canvas.drawText(str, 50, 200, paint);                           //绘制字符串  
  13.     canvas.drawText(ch, 0, ch.length, 50, 300, paint);              //绘制字符串  
  14.     canvas.drawText(str+" API详解", 0, str.length()+6, 50, 400, paint);//绘制字符串  
  15.     canvas.drawText(str, 7, str.length(), 50, 500, paint);          //绘制字符串  
  16. }  

在这段代码中,首先设置了画笔的属性以及画布的背景颜色,然后初始化了字符串和字符数组。接着,分别调用drawText的4种方式来在画布上绘制字符串。读者运行这段代码,可以在手机屏幕上看到如图8.23所示的显示效果。
8.2.12 drawArc方法:绘制圆弧_第2张图片 
图8.23  绘制字符串
【责任编辑: book TEL:(010)68476606】













8.2.14 drawBitmap方法:绘制图像

2012-04-11 12:40 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第8章Android绘图,本章详细介绍了Paint类和Canvas类中的方法,包括点、线、矩形、圆、椭圆、字符串和图像等各种对象的绘制。通过这些方法,开发者可以美化自己的Android应用程序,开发更绚丽多彩的界面效果。本节为大家介绍drawBitmap方法:绘制图像。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

8.2.14  drawBitmap方法:绘制图像

【功能说明】该方法用于在画布上绘制图像,通过指定Bitmap对象来实现。前面的各个方法都是自己绘制各个图形,但我们的应用程序往往需要直接引用一些图片资源。这个时候,便可以使用drawBitmap方法来在画布上直接显示图像。

【基本语法】public void drawBitmap (Bitmap bitmap, float left, float top, Paint paint)

参数说明

bitmap:Bitmap对象,代表了图像资源。

left:图像显示的左边位置。

top:图像显示的上边位置。

paint:绘制时所使用的画笔。

【实例演示】下面通过代码来演示如何在画布上绘制图像。

       
       
       
       
  1. protected void onDraw(Canvas canvas) {  
  2.     // TODO Auto-generated method stub  
  3.     super.onDraw(canvas);  
  4.     paint.setAntiAlias(true);                       //设置画笔为无锯齿  
  5.     paint.setColor(Color.BLACK);                    //设置画笔颜色  
  6.     canvas.drawColor(Color.WHITE);                  //白色背景  
  7.     paint.setStrokeWidth((float) 3.0);              //线宽  
  8.     paint.setStyle(Style.STROKE);  
  9.       
  10.     Bitmap bitmap=null;                         //Bitmap对象  
  11.     bitmap=((BitmapDrawable)getResources().getDrawable(R.drawable.icon)).getBitmap();  
  12.     canvas.drawBitmap(bitmap, 50, 50, null);        //绘制图像  
  13.     bitmap=((BitmapDrawable)getResources().getDrawable(R.drawable.bulb_on)).getBitmap();  
  14.     canvas.drawBitmap(bitmap, 50, 150, null);       //绘制图像  
  15.     bitmap=((BitmapDrawable)getResources().getDrawable(R.drawable.bulb_off)).getBitmap();  
  16.     canvas.drawBitmap(bitmap, 50, 450, null);       //绘制图像  
  17. }  

在这段代码中,首先初始化画笔和画布,然后声明了一个Bitmap对象。接着,从资源文件中获取图片资源,并使用drawBitmap方法将图片显示在画布上。这里显示了3个图片。读者运行这段代码,可以在手机屏幕上看到如图8.24所示的显示效果。
8.2.12 drawArc方法:绘制圆弧_第3张图片 
图8.24  绘制图像
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节









8.2.17 clipRect方法:设置裁剪区

2012-04-11 12:40 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第8章Android绘图,本章详细介绍了Paint类和Canvas类中的方法,包括点、线、矩形、圆、椭圆、字符串和图像等各种对象的绘制。通过这些方法,开发者可以美化自己的Android应用程序,开发更绚丽多彩的界面效果。本节为大家介绍clipRect方法:设置裁剪区。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

8.2.17  clipRect方法:设置裁剪区

【功能说明】该方法用于裁剪画布,也就是设置画布的显示区域。在使用时,可以使用Rect对象来指定裁剪区,也可以通过指定矩形的4条边来指定裁剪区。该方法主要用于部分显示以及对画布中的部分对象进行操作的场合。

【基本语法】clipRect方法有如下几种形式:

public boolean clipRect (Rect rect)

public boolean clipRect (float left, float top, float right, float bottom)

public boolean clipRect (int left, int top, int right, int bottom)

参数说明

rect:Rect对象,用于定义裁剪区的范围。

left:矩形裁剪区的左边位置,可以是浮点型或者整型。

top:矩形裁剪区的上边位置,可以是浮点型或者整型。

right:矩形裁剪区的右边位置,可以是浮点型或者整型。

bottom:矩形裁剪区的下边位置,可以是浮点型或者整型。

【实例演示】下面通过代码来演示如何设置画笔的显示区域。

    
    
    
    
  1. protected void onDraw(Canvas canvas) {  
  2.     // TODO Auto-generated method stub  
  3.     super.onDraw(canvas);  
  4.     paint.setAntiAlias(true);                           //设置画笔为无锯齿  
  5.     paint.setColor(Color.BLACK);                        //设置画笔颜色  
  6.     paint.setTextSize((float) 30.0);                    //设置字体大小  
  7.  
  8.     canvas.clipRect(100, 100, 350, 600);                //设置显示范围  
  9.     canvas.drawColor(Color.WHITE);                      //白色背景  
  10.     canvas.drawText("Hello Android!", 150, 300, paint); //绘制字符串  
  11. }  

在这段代码中,首先设置了画笔的颜色和字体大小,然后通过clipRect方法设置了显示范围,并通过drawColor方法设置背景颜色为白色。最后,调用drawText方法在画布上绘制字符串。读者运行这段代码,可以在手机屏幕上看到如图8.25所示的显示效果。通过这个程序发现,白色区域是画布的区域。但绘制操作是针对整个屏幕的,处于显示区域之外的将不显示。
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节









8.2.18 rotate方法:旋转画布

2012-04-11 12:40 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第8章Android绘图,本章详细介绍了Paint类和Canvas类中的方法,包括点、线、矩形、圆、椭圆、字符串和图像等各种对象的绘制。通过这些方法,开发者可以美化自己的Android应用程序,开发更绚丽多彩的界面效果。本节为大家介绍rotate方法:旋转画布。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

8.2.18  rotate方法:旋转画布

【功能说明】该方法用于旋转画布,通过旋转画布,可以将画布上绘制的对象旋转。在使用这个方法的时候,将会把画布上的所有对象都旋转。为了只对某一个对象进行旋转,则可以通过save方法锁定画布,然后执行旋转操作,最后通过restore方法解锁,此后再绘制其他图形。

【基本语法】rotate方法有如下几种形式:

public void rotate (float degrees)

public final void rotate (float degrees, float px, float py)

参数说明

degrees:旋转的角度,正数为顺时针方向,负数为逆时针方向。

px:旋转点的x坐标。

py:旋转点的y坐标。

【实例演示】下面通过代码来演示如何旋转画布上的一个对象。

    
    
    
    
  1. protected void onDraw(Canvas canvas) {  
  2.     // TODO Auto-generated method stub  
  3.     super.onDraw(canvas);  
  4.     paint.setAntiAlias(true);                           //设置画笔为无锯齿  
  5.     paint.setColor(Color.BLACK);                        //设置画笔颜色  
  6.     paint.setTextSize((float) 30.0);                    //设置字体大小  
  7.     canvas.drawColor(Color.WHITE);                      //白色背景  
  8.       
  9.     canvas.clipRect(50, 50, 400, 700);                  //设置裁剪区  
  10.     canvas.save();                                  //锁定画布  
  11.     canvas.rotate(45, 230, 250);                        //旋转45   
  12.     paint.setColor(Color.BLUE);                     //设置画笔颜色  
  13.     canvas.drawText("Hello Android!", 130, 250, paint); //绘制字符串  
  14.     canvas.restore();                                   //解除锁定  
  15.       
  16.     paint.setColor(Color.RED);                          //设置画笔颜色  
  17.     canvas.drawText("Hello Android!", 130, 250, paint); //绘制字符串  
  18.     RectF oval=new RectF();                         //RectF对象  
  19.     oval.left=150;                                  //左边  
  20.     oval.top=500;                                       //上边  
  21.     oval.right=350;                                 //右边  
  22.     oval.bottom=600;                                    //下边  
  23.     canvas.drawOval(oval, paint);                       //绘制椭圆  
  24. }  

在这段代码中,首先设置了画布和画布的参数。接着设置画布的显示区,并锁定画布,将画布旋转45 ,然后在此画布上绘制字符串,最后解锁画布。此后,在同一位置绘制相同的字符串,并继续绘制了一个椭圆。读者运行这段代码,可以在手机屏幕上看到如图8.26所示的显示效果。

这里,蓝色字体的字符串对象被旋转,红色的字符串对象和椭圆对象则没有被旋转。这样,我们便完成了只旋转其中一个对象的操作。

8.2.12 drawArc方法:绘制圆弧_第4张图片 
图8.25  设置显示区域
8.2.12 drawArc方法:绘制圆弧_第5张图片 
图8.26  旋转画布
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节








8.3  小结

绘图操作是Android应用程序经常用到的,特别是在游戏开发的场合使用最为广泛。Android中的绘图操作主要通过Paint画笔类和Canvas画布类来实现。本章详细介绍了Paint类和Canvas类中的方法,包括点、线、矩形、圆、椭圆、字符串和图像等各种对象的绘制。通过这些方法,开发者可以美化自己的Android应用程序,开发更绚丽多彩的界面效果。








9.1 Animation类:动画抽象类

2012-04-11 13:32 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍Animation类:动画抽象类。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

第9章  Android动画效果

Android系统提供了两种实现动画的方式,一种是补间动画(Tween Animation),另一种是帧动画(Frame Animation)。补间动画可以实现View组件的移动、放大、缩小以及渐变等效果,帧动画则提供了一种逐帧播放图片的动画方式。无论是补间动画还是帧动画,Android均为其进行了封装,提供了非常简单的应用接口。

9.1  Animation类:动画抽象类

Animation类是Android系统的一个动画抽象类,所有其他一些动画类都要继承该类中的实现方法。Animation类主要用于补间动画效果,提供了动画启动、停止、重复、持续时间等方法。Animation类中的方法适用于任何一种补间动画对象。







9.1.1 setDuration方法:设置持续时间

2012-04-11 13:32 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍setDuration方法:设置持续时间。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.1.1  setDuration方法:设置持续时间

【功能说明】该方法用于设置动画的持续时间,以毫秒为单位。该方法是设置补间动画时间长度的主要方法,使用非常普遍。

【基本语法】public void setDuration (long durationMillis)

其中,参数durationMillis为动画的持续时间,单位为毫秒(ms)。

setDuration方法的示例可以参阅startNow方法中的示例代码。

【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节






9.1.2 startNow方法:立刻启动动画

2012-04-11 13:32 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍startNow方法:立刻启动动画。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.1.2  startNow方法:立刻启动动画

【功能说明】该方法用于启动执行一个动画。该方法是启动执行动画的主要方法,使用时需要先通过setAnimation方法为某一个View对象设置动画。另外,用户在程序中也可以使用View组件的startAnimation方法来启动执行动画。

【基本语法】public void startNow ()

【实例演示】下面通过代码来演示如何设置一个简单的动画效果。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     final Animation translateAnimation=new TranslateAnimation(0,200,0,200);                                                                 //移动动画效果  
  11.  
  12.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  13.           
  14.         @Override  
  15.         public void onClick(View v) {  
  16.             // TODO Auto-generated method stub  
  17.             translateAnimation.setDuration(3000);               //设置动画持续时间  
  18.             image.setAnimation(translateAnimation);             //设置动画效果  
  19.             translateAnimation.startNow();                      //启动动画  
  20.         }  
  21.     });  
  22. }  
  23. }  

在这段代码中,首先初始化了一个移动的动画效果translateAnimation。然后,在按钮监听器中,通过setDuration方法设置动画持续时间,并为image对象设置动画效果,最后使用startNow方法启动动画效果。读者执行这段代码,点击"执行动画"按钮,可以在手机屏幕上看到如图9.1所示的显示效果。图中所示的图片将沿45 方向向右下角移动。
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节






9.1.3  start方法:启动动画

【功能说明】该方法用于启动执行一个动画。该方法是启动执行动画的另一个主要方法,使用时需要先通过setAnimation方法为某一个View对象设置动画。start方法区别于startNow方法的地方在于,start方法可以用于在getTransformation方法被调用时启动动画。

【基本语法】public void start ()

start方法的执行效果类似于startNow方法,这里不再赘述。





9.1.4 cancel方法:取消动画

2012-04-11 13:32 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍cancel方法:取消动画。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.1.4  cancel方法:取消动画

【功能说明】该方法用于取消一个动画的执行。该方法是取得一个正在执行中的动画的主要方法。cancel方法和startNow方法结合可以实现对动画执行过程的控制。需要注意的是,通过cancel方法取消的动画,必须使用reset方法或者setAnimation方法重新设置,才可以再次执行动画。

【基本语法】public void cancel ()

【实例演示】下面通过代码来演示如何取消动画效果执行。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation translateAnimation=new TranslateAnimation(0,200,0,200);//移动动画效果  
  12.  
  13.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  14.           
  15.         @Override  
  16.         public void onClick(View v) {  
  17.             // TODO Auto-generated method stub  
  18.             translateAnimation.setDuration(3000);               //设置动画持续时间  
  19.             image.setAnimation(translateAnimation);             //设置动画效果  
  20.             translateAnimation.startNow();                      //启动动画  
  21.         }  
  22.     });  
  23.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  24.           
  25.         @Override  
  26.         public void onClick(View v) {  
  27.             // TODO Auto-generated method stub  
  28.             translateAnimation.cancel();                        //取消动画执行  
  29.         }  
  30.     });  
  31. }  
  32. }  

在这段代码中,首先初始化了一个移动的动画效果translateAnimation。然后,在第一个按钮监听器中,通过setDuration方法设置动画持续时间,并为image对象设置动画效果,最后使用startNow方法启动动画效果。在第二个按钮监听器中,调用cancel方法取消动画执行。读者执行这段代码,可以在手机屏幕上看到如图9.2所示的显示效果。当点击"执行动画"按钮时,图片开始移动;当点击"停止动画"按钮时,动画被取消,重新返回起始位置。
8.2.12 drawArc方法:绘制圆弧_第6张图片 
图9.1  启动动画
8.2.12 drawArc方法:绘制圆弧_第7张图片 
图9.2  取消动画
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节







9.1.5 setRepeatCount方法:设置重复次数

2012-04-11 13:32 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍setRepeatCount方法:设置重复次数。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.1.5  setRepeatCount方法:设置重复次数

【功能说明】该方法用于设置一个动画效果重复执行的次数。Android系统默认每个动画仅执行一次,通过该方法可以设置动画执行多次。

【基本语法】public void setRepeatCount (int repeatCount)

其中,参数repeatCount为重复执行的次数。如果设置为n,则动画将执行n+1次。

【实例演示】下面通过代码来演示如何连续执行多次动画效果。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation translateAnimation=new TranslateAnimation(0,200,0,200);                                                                 //移动动画效果  
  12.  
  13.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  14.           
  15.         @Override  
  16.         public void onClick(View v) {  
  17.             // TODO Auto-generated method stub  
  18.             translateAnimation.setDuration(3000);               //设置动画持续时间  
  19.             translateAnimation.setRepeatCount(2);               //设置重复次数  
  20.             image.setAnimation(translateAnimation);             //设置动画效果  
  21.             translateAnimation.startNow();                      //启动动画  
  22.         }  
  23.     });  
  24.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  25.           
  26.         @Override  
  27.         public void onClick(View v) {  
  28.             // TODO Auto-generated method stub  
  29.             translateAnimation.cancel();                        //取消动画执行  
  30.         }  
  31.     });  
  32. }  
  33. }  

在这段代码中,首先初始化了一个移动的动画效果translateAnimation。然后,在第一个按钮监听器中,通过setDuration方法设置动画持续时间,通过setRepeatCount方法设置重复次数,并为image对象设置动画效果,最后使用startNow方法启动动画效果。在第二个按钮监听器中,调用cancel方法取消动画执行。读者执行这段代码,当点击"执行动画"按钮时,将看到动画被重复执行了两次,也就是总共执行了3次动画。

注意:这里设置的是动画重复执行的次数,而不是动画执行的次数。故动画执行的次数为动画重复执行的次数加1。

【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节







9.1.6 setFillEnabled方法:使能填充效果

2012-04-11 13:32 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍setFillEnabled方法:使能填充效果。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.1.6  setFillEnabled方法:使能填充效果

【功能说明】该方法用于使能填充效果。当该方法设置为true时,将执行setFillBefore和setFillAfter方法,否则将忽略setFillBefore和setFillAfter方法。

【基本语法】public void setFillEnabled (boolean fillEnabled)

其中,参数fillEnabled为是否使能填充效果,true表示使能该效果,false表示禁用该效果。

setFillEnabled方法的示例可以参阅setFillBefore方法和setFillAfter方法中的示例代码。

【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节

原文:9.1.6 setFillEnabled方法:使能填充效果 返回读书频道首页





9.1.7 setFillBefore方法:设置起始填充

2012-04-11 13:43 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍setFillBefore方法:设置起始填充。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.1.7  setFillBefore方法:设置起始填充

【功能说明】该方法用于设置一个动画效果执行完毕后,View对象返回到起始的位置。该方法的效果是系统默认的效果。该方法的执行,需要首先通过setFillEnabled方法使能填充效果,否则设置无效。

【基本语法】public void setFillBefore (boolean fillBefore)

其中,参数fillBefore为是否执行起始填充效果,true表示使能该效果,false表示禁用该效果。

【实例演示】下面通过代码来演示如何让View对象在动画执行完毕后回归到起始位置。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation translateAnimation=new TranslateAnimation(0,200,0,200);                                                                 //移动动画效果  
  12.  
  13.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  14.           
  15.         @Override  
  16.         public void onClick(View v) {  
  17.             // TODO Auto-generated method stub  
  18.             translateAnimation.setDuration(3000);               //设置动画持续时间  
  19.             translateAnimation.setFillBefore(true);             //回归起始位置  
  20.             translateAnimation.setFillEnabled(true);            //使能填充效果  
  21.             image.setAnimation(translateAnimation);             //设置动画效果  
  22.             translateAnimation.startNow();                      //启动动画  
  23.         }  
  24.     });  
  25.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  26.           
  27.         @Override  
  28.         public void onClick(View v) {  
  29.             // TODO Auto-generated method stub  
  30.             translateAnimation.cancel();                        //取消动画执行  
  31.         }  
  32.     });  
  33. }  
  34. }  
在这段代码中,首先初始化了一个移动的动画效果translateAnimation。然后,在按钮监听器中,通过setDuration方法设置动画持续时间,通过setFillBefore方法使对象回到起始点,并使用setFillEnabled使能填充效果,最后使用startNow方法启动动画效果。读者执行这段代码,当点击"执行动画"按钮时,图片开始移动,当动画结束之后,图片将自动跳回到起始位置,如图9.3所示。






9.1.8 setFillAfter方法:设置终止填充

2012-04-11 13:43 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍setFillAfter方法:设置终止填充。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.1.8  setFillAfter方法:设置终止填充

【功能说明】该方法用于设置一个动画效果执行完毕后,View对象保留在终止的位置。该方法的执行,需要首先通过setFillEnabled方法使能填充效果,否则设置无效。

【基本语法】public void setFillAfter (boolean fillAfter)

其中,参数fillAfter为是否执行终止填充效果,true表示使能该效果,false表示禁用该效果。

【实例演示】下面通过代码来演示如何让View对象在动画执行完毕后保留在终止位置。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation translateAnimation=new TranslateAnimation(0,200,0,200);                                                                 //移动动画效果  
  12.  
  13.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  14.           
  15.         @Override  
  16.         public void onClick(View v) {  
  17.             // TODO Auto-generated method stub  
  18.             translateAnimation.setDuration(3000);               //设置动画持续时间  
  19.             translateAnimation.setFillAfter (true);             //保留在终止位置  
  20.             translateAnimation.setFillEnabled(true);            //使能填充效果  
  21.             image.setAnimation(translateAnimation);             //设置动画效果  
  22.             translateAnimation.startNow();                      //启动动画  
  23.         }  
  24.     });  
  25.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  26.           
  27.         @Override  
  28.         public void onClick(View v) {  
  29.             // TODO Auto-generated method stub  
  30.             translateAnimation.cancel();                        //取消动画执行  
  31.         }  
  32.     });  
  33. }  
  34. }  

在这段代码中,首先初始化了一个移动的动画效果translateAnimation。然后,在按钮监听器中,通过setDuration方法设置动画持续时间,通过setFillAfter方法使对象保留在终止点,并使用setFillEnabled使能填充效果,最后使用startNow方法启动动画效果。读者执行这段代码,当点击"执行动画"按钮时,图片开始移动,当动画结束之后,图片将停留在终止位置,如图9.4所示。
8.2.12 drawArc方法:绘制圆弧_第8张图片 
图9.3  起始填充效果
8.2.12 drawArc方法:绘制圆弧_第9张图片 
图9.4  终止填充效果
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节

原文:9.1.8 setFillAfter方法:设置终止填充 返回读书频道首页






9.1.9 setRepeatMode方法:设置重复模式

2012-04-11 13:43 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍setRepeatMode方法:设置重复模式。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.1.9  setRepeatMode方法:设置重复模式

【功能说明】该方法用于设置一个动画效果执行的重复模式。Android系统中提供了几种重复模式,其中最主要的便是RESTART模式和REVERSE模式。

【基本语法】public void setRepeatMode (int repeatMode)

其中,参数repeatMode为动画效果的重复模式,常用的取值如下。

RESTART:重新从头开始执行。

REVERSE:反方向执行。

【实例演示】下面通过代码来演示如何更改动画路径的方向。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation translateAnimation=new TranslateAnimation(0,200,0,200);                                                                 //移动动画效果  
  12.  
  13.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  14.           
  15.         @Override  
  16.         public void onClick(View v) {  
  17.             // TODO Auto-generated method stub  
  18.             translateAnimation.setDuration(3000);               //设置动画持续时间  
  19.             translateAnimation.setRepeatCount(2);               //设置重复次数  
  20.             translateAnimation.setRepeatMode(Animation.RESTART);    //重新从头执行  
  21.             //translateAnimation.setRepeatMode(Animation.REVERSE);  //反方向执行  
  22.             image.setAnimation(translateAnimation);             //设置动画效果  
  23.             translateAnimation.startNow();                      //启动动画  
  24.         }  
  25.     });  
  26.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  27.           
  28.         @Override  
  29.         public void onClick(View v) {  
  30.             // TODO Auto-generated method stub  
  31.             translateAnimation.cancel();                        //取消动画执行  
  32.         }  
  33.     });  
  34. }  
  35. }  

在这段代码中,首先初始化了一个移动的动画效果translateAnimation。然后,在按钮监听器中,通过setDuration方法设置动画持续时间,通过setRepeatCount方法设置重复次数,通过setRepeatMode设置重复模式,最后使用startNow方法启动动画效果。

如果设置的重复模式为Animation.RESTART,则表示重新从头开始执行。读者执行这段代码,当点击"执行动画"按钮时,图片开始移动,当一次动画执行结束之后,图片将重新从头开始执行,执行效果如图9.5所示。

如果设置的重复模式为Animation.REVERSE,则表示反方向执行。读者执行这段代码,当点击"执行动画"按钮时,图片开始移动,当一次动画执行结束之后,图片将向反方向运动,执行效果如图9.6所示。

8.2.12 drawArc方法:绘制圆弧_第10张图片 
图9.5  RESTART模式
8.2.12 drawArc方法:绘制圆弧_第11张图片 
图9.6  REVERSE模式
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节

原文:9.1.9 setRepeatMode方法:设置重复模式 返回读书频道首页










9.1.10 setStartOffset方法:设置启动时间

2012-04-11 13:43 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍setStartOffset方法:设置启动时间。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.1.10  setStartOffset方法:设置启动时间

【功能说明】该方法用于设置一个动画执行的启动时间,单位为毫秒。系统默认当执行start方法后立刻执行动画,当使用该方法设置后,将延迟一定的时间再启动动画。

【基本语法】public void setStartOffset (long startOffset)

其中,参数startOffset为动画的启动时间,单位为毫秒(ms)。

【实例演示】下面通过代码来演示如何更改动画的启动时间。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation translateAnimation=new TranslateAnimation(0,200,0,200);                                                                 //移动动画效果  
  12.  
  13.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  14.           
  15.         @Override  
  16.         public void onClick(View v) {  
  17.             // TODO Auto-generated method stub  
  18.             translateAnimation.setDuration(3000);               //设置动画持续时间  
  19.             translateAnimation.setStartOffset(3000);            //设置启动时间  
  20.             image.setAnimation(translateAnimation);             //设置动画效果  
  21.             translateAnimation.startNow();                      //启动动画  
  22.         }  
  23.     });  
  24.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  25.           
  26.         @Override  
  27.         public void onClick(View v) {  
  28.             // TODO Auto-generated method stub  
  29.             translateAnimation.cancel();                        //取消动画执行  
  30.         }  
  31.     });  
  32. }  
  33. }  

在这段代码中,首先初始化了一个移动的动画效果translateAnimation。然后,在按钮监听器中,通过setDuration方法设置动画的持续时间,通过setStartOffset方法设置动画的启动时间,最后使用startNow方法启动动画效果。读者执行这段代码,当点击"执行动画"按钮时,将等待3秒之后,图片才开始移动。
【责任编辑: book TEL:(010)68476606】




9.2 TranslateAnimation类:位置变化动画类

2012-04-11 13:43 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍TranslateAnimation类:位置变化动画类。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.2  TranslateAnimation类:位置变化动画类

TranslateAnimation类是Android系统中的位置变化动画类,用于控制View对象的位置变化,该类继承于Animation类。TranslateAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是TranslateAnimation构造方法。

【基本语法】public TranslateAnimation (float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

参数说明

fromXDelta:位置变化的起始点X坐标。

toXDelta:位置变化的结束点X坐标。

fromYDelta:位置变化的起始点Y坐标。

toYDelta:位置变化的结束点Y坐标。

【实例演示】下面通过代码来演示如何设置一个简单的位置变化动画效果。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation translateAnimation=new TranslateAnimation(0,300,0,300);                                                                 //位置变化动画效果  
  12.  
  13.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  14.           
  15.         @Override  
  16.         public void onClick(View v) {  
  17.             // TODO Auto-generated method stub  
  18.             translateAnimation.setDuration(3000);               //设置动画持续时间  
  19.             translateAnimation.setRepeatCount(2);               //设置重复次数  
  20.             translateAnimation.setRepeatMode(Animation.REVERSE);    //反方向执行  
  21.             image.setAnimation(translateAnimation);             //设置动画效果  
  22.             translateAnimation.startNow();                      //启动动画  
  23.         }  
  24.     });  
  25.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  26.           
  27.         @Override  
  28.         public void onClick(View v) {  
  29.             // TODO Auto-generated method stub  
  30.             translateAnimation.cancel();                        //取消动画执行  
  31.         }  
  32.     });  
  33. }  
  34. }  

在这段代码中,首先通过TranslateAnimation构造方法创建了一个位置变化的动画对象。然后,在第一个按钮监听器中设置了动画的持续时间、重复次数和重复模式等,然后启动该动画。在第二个按钮监听器中取消该动画。读者运行这段代码,将看到图片沿如图9.7所示的路径往返运动。
8.2.12 drawArc方法:绘制圆弧_第12张图片 
图9.7  位置变化动画
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节








9.3 RotateAnimation类:旋转变化动画类

2012-04-11 13:43 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍RotateAnimation类:旋转变化动画类。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.3  RotateAnimation类:旋转变化动画类

RotateAnimation类是Android系统中的旋转变化动画类,用于控制View对象的旋转动作,该类继承于Animation类。RotateAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是RotateAnimation构造方法。

【基本语法】public RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

参数说明

fromDegrees:旋转的开始角度。

toDegrees:旋转的结束角度。

pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

pivotXValue:X坐标的伸缩值。

pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

pivotYValue:Y坐标的伸缩值。

【实例演示】下面通过代码来演示如何设置一个简单的旋转变化动画效果。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {           //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);         //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation rotateAnimation = new       
  12.      RotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);  
  13.                                                         //设置旋转变化动画对象  
  14.     btn1.setOnClickListener(new View.OnClickListener() {        //设置监听器  
  15.           
  16.         @Override  
  17.         public void onClick(View v) {  
  18.             // TODO Auto-generated method stub  
  19.             rotateAnimation.setDuration(3000);              //持续时间  
  20.             image.setAnimation(rotateAnimation);            //设置动画  
  21.             rotateAnimation.startNow();                 //启动动画  
  22.         }  
  23.     });  
  24.     btn2.setOnClickListener(new View.OnClickListener() {        //设置监听器  
  25.           
  26.         @Override  
  27.         public void onClick(View v) {  
  28.             // TODO Auto-generated method stub  
  29.             rotateAnimation.cancel();                       //取消动画执行  
  30.         }  
  31.     });  
  32. }  
  33. }  

在这段代码中,首先通过RotateAnimation构造方法创建了一个旋转变化的动画对象。然后,在第一个按钮监听器中设置了动画的持续时间,之后启动该动画。在第二个按钮监听器中取消该动画。读者运行这段代码,将看到图片沿如图9.8所示的方向进行旋转。
8.2.12 drawArc方法:绘制圆弧_第13张图片 
图9.8  旋转变化动画
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节




9.4 ScaleAnimation类:尺寸变化动画类

2012-04-11 13:43 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍ScaleAnimation类:尺寸变化动画类。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.4  ScaleAnimation类:尺寸变化动画类

ScaleAnimation类是Android系统中的尺寸变化动画类,用于控制View对象的尺寸变化,该类继承于Animation类。ScaleAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是ScaleAnimation构造方法。

【基本语法】public ScaleAnimation (float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

参数说明

fromX:起始X坐标上的伸缩尺寸。

toX:结束X坐标上的伸缩尺寸。

fromY:起始Y坐标上的伸缩尺寸。

toY:结束Y坐标上的伸缩尺寸。

pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

pivotXValue:X坐标的伸缩值。

pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

pivotYValue:Y坐标的伸缩值。

【实例演示】下面通过代码来演示如何设置一个简单的尺寸变化动画效果。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {           //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);         //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation scaleAnimationnew   
  12.      ScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);  
  13.                                                         //设置尺寸变化动画对象  
  14.     btn1.setOnClickListener(new View.OnClickListener() {        //设置监听器  
  15.           
  16.         @Override  
  17.         public void onClick(View v) {  
  18.             // TODO Auto-generated method stub  
  19.             scaleAnimation.setDuration(2000);               //动画持续时间  
  20.             image.setAnimation(scaleAnimation);         //设置动画  
  21.             scaleAnimation.startNow();                      //启动动画  
  22.         }  
  23.     });  
  24.     btn2.setOnClickListener(new View.OnClickListener() {        //设置监听器  
  25.           
  26.         @Override  
  27.         public void onClick(View v) {  
  28.             // TODO Auto-generated method stub  
  29.             scaleAnimation.cancel();                        //取消动画执行  
  30.         }  
  31.     });  
  32. }  
  33. }  

在这段代码中,首先通过ScaleAnimation构造方法创建了一个尺寸变化的动画对象。然后,在第一个按钮监听器中设置了动画的持续时间,之后启动该动画。在第二个按钮监听器中取消该动画。读者运行这段代码,将看到图片从小到大逐渐变化,如图9.9所示。最后,图片增大到原始尺寸的时候停止,如图9.10所示。
8.2.12 drawArc方法:绘制圆弧_第14张图片 
图9.9  尺寸变化动画
8.2.12 drawArc方法:绘制圆弧_第15张图片 
图9.10  原始尺寸图片
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节





9.5 AlphaAnimation类:透明度变化动画类

2012-04-11 13:53 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍AlphaAnimation类:透明度变化动画类。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.5  AlphaAnimation类:透明度变化动画类

AlphaAnimation类是Android系统中的透明度变化动画类,用于控制View对象的透明度变化,该类继承于Animation类。AlphaAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是AlphaAnimation构造方法。

【基本语法】public AlphaAnimation (float fromAlpha, float toAlpha)

参数说明

fromAlpha:开始时刻的透明度,取值范围0~1。

toAlpha:结束时刻的透明度,取值范围0~1。

【实例演示】下面通过代码来演示如何设置一个简单的渐变透明度动画效果。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation alphaAnimation=new AlphaAnimation(0.1f,1.0f);   //设置透明度动画效果  
  12.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  13.           
  14.         @Override  
  15.         public void onClick(View v) {  
  16.             // TODO Auto-generated method stub  
  17.             alphaAnimation.setDuration(30000);                  //设置持续时间  
  18.             image.setAnimation(alphaAnimation);             //设置动画  
  19.             alphaAnimation.startNow();                          //启动动画  
  20.         }  
  21.     });  
  22.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  23.           
  24.         @Override  
  25.         public void onClick(View v) {  
  26.             // TODO Auto-generated method stub  
  27.             scaleAnimation.cancel();                            //取消动画执行  
  28.         }  
  29.     });  
  30. }  
  31. }  

在这段代码中,首先通过AlphaAnimation构造方法创建了一个透明度变化的动画对象。然后,在第一个按钮监听器中设置了动画的持续时间,之后启动该动画。在第二个按钮监听器中取消该动画。读者运行这段代码,将看到图片的透明度由浅入深逐渐变化,如图9.11所示。最后,图片变为完全不透明的时候停止,如图9.12所示。
8.2.12 drawArc方法:绘制圆弧_第16张图片 
图9.11  透明度渐变动画
8.2.12 drawArc方法:绘制圆弧_第17张图片 
图9.12  图片原始透明度
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节









9.6 AnimationSet类:动画集合类

2012-04-11 13:53 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍AnimationSet类:动画集合类。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.6  AnimationSet类:动画集合类

AnimationSet类是Android系统中的动画集合类,用于控制View对象进行多个动作的组合,该类继承于Animation类。AnimationSet类中的很多方法都与Animation类一致,该类中最常用的方法便是addAnimation方法,该方法用于为动画集合对象添加动画对象。

【基本语法】public void addAnimation (Animation a)

其中,参数a为Animation动画对象,可以是前述任何一种补间动作。

【实例演示】下面通过代码来演示如何设置一个组合动画效果。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final Animation translateAnimation=new TranslateAnimation(0,300,0,300);                                                                 //设置位置变化动画  
  12.     final Animation scaleAnimation = new   
  13.      ScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);  
  14.                                                             //设置尺寸变化动画  
  15.     final Animation alphaAnimation=new AlphaAnimation(0.1f,1.0f);   //设置透明度变化动画  
  16.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  17.           
  18.         @Override  
  19.         public void onClick(View v) {  
  20.             // TODO Auto-generated method stub  
  21.             translateAnimation.setDuration(10000);      //设置位置变化动画的持续时间  
  22.             scaleAnimation.setDuration(10000);          //设置尺寸变化动画的持续时间  
  23.             alphaAnimation.setDuration(10000);          //设置透明度渐变动画的持续时间  
  24.             AnimationSet set=new AnimationSet(true);    //创建动画集对象  
  25.             set.addAnimation(translateAnimation);       //添加位置变化动画  
  26.             set.addAnimation(scaleAnimation);           //添加尺寸变化动画  
  27.             set.addAnimation(alphaAnimation);           //添加透明度渐变动画  
  28.             set.setFillAfter(true);                 //停留在最后的位置  
  29.             set.setFillEnabled(true);  
  30.             image.setAnimation(set);                    //设置动画  
  31.             set.startNow();                         //启动动画  
  32.         }  
  33.     });  
  34.     btn2.setOnClickListener(new View.OnClickListener() {    //设置监听器  
  35.           
  36.         @Override  
  37.         public void onClick(View v) {  
  38.             // TODO Auto-generated method stub  
  39.             set.cancel();                               //取消动画执行  
  40.         }  
  41.     });  
  42. }  
  43. }  

在这段代码中,首先构造了位置变化、尺寸变化和透明度变化动画的对象。然后,在第一个按钮监听器中分别设置了动画的持续时间,并通过addAnimation方法添加到动画集中,之后启动该动画。在第二个按钮监听器中取消该动画。读者运行这段代码,将会看到如图9.13所示的显示效果。图片从小到大,由浅入深,从左上角向右下角移动。当动画结束的时候,图片对象将停留在结束点的位置,如图9.14所示。
8.2.12 drawArc方法:绘制圆弧_第18张图片 
图9.13  组合动画
8.2.12 drawArc方法:绘制圆弧_第19张图片 
图9.14  最终位置
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节







9.7 AnimationUtils类:动画工具类

2012-04-11 13:53 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍AnimationUtils类:动画工具类。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.7  AnimationUtils类:动画工具类

AnimationUtils类是Android系统中的动画工具类,提供了控制View对象的一些工具。该类中最常用的方法便是loadAnimation方法,该方法用于加载XML格式的动画配置文件。在Android系统中,除了在代码中设置动画效果外,还可以在XML配置文件中设置动画的组合动作,这种方式适用性更好。

【基本语法】public static Animation loadAnimation (Context context, int id)

参数说明

context:上下文对象。

id:动画配置文件的ID。

【实例演示】下面通过代码来演示如何加载一个XML组合动画效果。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     Animation loadAnimation;                                    //动画对象  
  12.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  13.           
  14.         @Override  
  15.         public void onClick(View v) {  
  16.             // TODO Auto-generated method stub                  //加载动画  
  17.             loadAnimation=AnimationUtils.loadAnimation(getApplicationContext(),   
  18.     R.anim.anim);  
  19.             image.setAnimation(loadAnimation);                  //为控件设置动画  
  20.             loadAnimation.setFillAfter(true);                   //停留在结束位置  
  21.             loadAnimation.setFillEnabled(true);  
  22.             loadAnimation.startNow();                           //开始动画  
  23.         }  
  24.     });  
  25.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  26.           
  27.         @Override  
  28.         public void onClick(View v) {  
  29.             // TODO Auto-generated method stub  
  30.             loadAnimation.cancel();                         //取消动画执行  
  31.         }  
  32.     });  
  33. }  
  34. }  

在这段代码中,首先声明了动画对象。然后,在第一个按钮监听器中通过loadAnimation方法加载动画配置文件,并设置了动画的一些特征,最后开始执行动画。在第二个按钮监听器中调用cancel方法取消动画执行。这里用到的动画配置文件如下所示,里面定义了位置移动和旋转的组合动画效果。
    
    
    
    
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <set xmlns:android="http://schemas.android.com/apk/res/android"> 
  3.     <translate android:toXDelta="0" 
  4.             android:toYDelta="300" 
  5.             android:duration="3000"/>   
  6.     <rotate android:fromDegrees="270" 
  7.             android:toDegrees="360" 
  8.             android:pivotX="50%" 
  9.             android:pivotY="50%" 
  10.             android:duration="3000"/>   
  11. </set> 

读者运行这段代码,可以在手机屏幕上看到如图9.15所示的显示效果。图片从起始位置边旋转边移动,最后停留在如图9.16所示的位置。
8.2.12 drawArc方法:绘制圆弧_第20张图片 
图9.15  加载动画配置文件
8.2.12 drawArc方法:绘制圆弧_第21张图片 
图9.16  动画最终位置
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节

原文:9.7 AnimationUtils类:动画工具类 返回读书频道首页







9.8.1 start方法:开始动画

2012-04-11 13:53 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍start方法:开始动画。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.8  AnimationDrawable类:帧动画类

AnimationDrawable类是Android系统中的帧动画类。帧动画方式类似于放电影的原理,是通过顺序播放多张图片来实现动画效果的,图片之间有一定的动作连贯性,这样人眼看来就像对象真正在运动一样。AnimationDrawable类位于android.graphics.drawable软件包中,本节将介绍帧动画类中的主要编程方法。

9.8.1  start方法:开始动画

【功能说明】该方法用于开始动画执行,其是帧动画效果执行的主要方法。

【基本语法】public void start ()

【实例演示】下面通过代码来演示如何实现一个简单的帧动画。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);                 //按钮对象  
  10.     final AnimationDrawable ad=(AnimationDrawable)image.getBackground();    //声明帧动画对象  
  11.     btn1.setOnClickListener(new View.OnClickListener() {                //设置监听器  
  12.           
  13.         @Override  
  14.         public void onClick(View v) {  
  15.             // TODO Auto-generated method stub  
  16.             ad.start();                                         //开始动画  
  17.         }  
  18.     });  
  19. }  
  20. }  

在这段代码中,首先声明了帧动画对象,然后在按钮监听器中直接调用start方法来开始动画执行。为了能够实现动画效果,还需要指定帧动画所需要的图片和动画顺序。这里需要用到如图9.17所示的5张图片。读者也可以自行设置几张图片。然后,新建一个帧动画配置文件,并将其设置为图片控件的背景。帧动画配置文件的内容如下:
    
    
    
    
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
  3.                 android:oneshot="true"> 
  4.     <item android:drawable="@drawable/p0" android:duration="50"/> 
  5.     <item android:drawable="@drawable/p1" android:duration="50"/> 
  6.     <item android:drawable="@drawable/p2" android:duration="50"/> 
  7.     <item android:drawable="@drawable/p3" android:duration="50"/> 
  8.     <item android:drawable="@drawable/p4" android:duration="50"/> 
  9. </animation-list> 

8.2.12 drawArc方法:绘制圆弧_第22张图片 
图9.17  帧动画使用的图片
这样,读者执行这段代码,当点击"执行动画"按钮时,将看到这几张图片按照顺序播放的动画效果,如图9.18所示。
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节






9.8.2 stop方法:停止动画

2012-04-11 13:53 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍stop方法:停止动画。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.8.2  stop方法:停止动画

【功能说明】该方法用于停止动画执行,其是帧动画效果停止的主要方法。start方法常和stop方法一起来使用。

【基本语法】public void stop ()

【实例演示】下面通过代码来演示如何实现一个简单的帧动画。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final AnimationDrawable ad=(AnimationDrawable)image.getBackground();    //声明帧动画对象  
  12.     btn1.setOnClickListener(new View.OnClickListener() {                //设置监听器  
  13.           
  14.         @Override  
  15.         public void onClick(View v) {  
  16.             // TODO Auto-generated method stub  
  17.             ad.start();                                         //开始动画  
  18.         }  
  19.     });  
  20.     btn2.setOnClickListener(new View.OnClickListener() {                //设置监听器  
  21.           
  22.         @Override  
  23.         public void onClick(View v) {  
  24.             // TODO Auto-generated method stub  
  25.             ad.stop();                                          //停止动画  
  26.         }  
  27.     });  
  28. }  
  29. }  

在这段代码中,首先声明了帧动画对象。然后,在第一个按钮监听器中直接调用start方法来开始动画执行,在第二个按钮监听器中直接调用stop方法来停止动画执行。这样,读者执行这段代码,将在手机屏幕上看到如图9.19所示的显示效果。当点击"执行动画"按钮时,将看到这几张图片按照顺序播放的动画效果;当点击"停止动画"按钮时,动画将停止。
8.2.12 drawArc方法:绘制圆弧_第23张图片 
图9.18  执行帧动画
8.2.12 drawArc方法:绘制圆弧_第24张图片 
图9.19  停止帧动画
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节




9.8.3 addFrame方法:添加动画帧

2012-04-11 13:53 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍addFrame方法:添加动画帧。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.8.3  addFrame方法:添加动画帧

【功能说明】该方法用于为帧动画对象添加动画帧。该方法主要用于动态修改帧动画内容的场合,可以根据需要增加一些动画帧。

【基本语法】public void addFrame (Drawable frame, int duration)

参数说明

frame:动画帧的Drawable对象。

duration:动画帧的持续时间,单位为毫秒。

【实例演示】下面通过代码来演示如何实现一个简单的帧动画。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final AnimationDrawable ad=(AnimationDrawable)image.getBackground();                                                                        //声明帧动画对象  
  12.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  13.           
  14.         @Override  
  15.         public void onClick(View v) {  
  16.             // TODO Auto-generated method stub    
  17.             ad.addFrame(getResources().getDrawable(R.drawable.p0), 100);    //添加帧  
  18.             ad.addFrame(getResources().getDrawable(R.drawable.p1), 100);    //添加帧  
  19.             ad.addFrame(getResources().getDrawable(R.drawable.p2), 100);    //添加帧  
  20.             ad.addFrame(getResources().getDrawable(R.drawable.p3), 100);    //添加帧  
  21.             ad.addFrame(getResources().getDrawable(R.drawable.p4), 100);    //添加帧  
  22.             ad.start();                                     //开始动画  
  23.         }  
  24.     });  
  25.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  26.           
  27.         @Override  
  28.         public void onClick(View v) {  
  29.             // TODO Auto-generated method stub  
  30.             ad.stop();                                      //停止动画  
  31.         }  
  32.     });  
  33. }  
  34. }  

在这段代码中,首先声明了帧动画对象。然后,在第一个按钮监听器中使用addFrame方法添加了动画帧,之后直接调用start方法来开始动画执行,在第二个按钮监听器中直接调用stop方法来停止动画执行。这样,读者执行这段代码,当点击"执行动画"按钮时,将看到动画效果执行了两遍。这是因为我们增加的动画帧与原有的动画帧相同,相当于播放了两次。
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节











9.8.4 setOneShot方法:设置播放方式

2012-04-11 13:53 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍setOneShot方法:设置播放方式。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.8.4  setOneShot方法:设置播放方式

【功能说明】该方法用于设置帧动画的播放方式,可以是单次播放,也可以是循环播放。在系统默认情况下采用的是单次播放的方式。该方法主要用于循环播放的场合。

【基本语法】public void setOneShot (boolean oneShot)

其中,参数oneShot表示了动画是否执行一次,true表示仅执行一次,false表示无限次循环执行动画效果。

【实例演示】下面通过代码来演示如何实现一个简单的循环播放帧动画。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final AnimationDrawable ad=(AnimationDrawable)image.getBackground();                                                                        //声明帧动画对象  
  12.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  13.           
  14.         @Override  
  15.         public void onClick(View v) {  
  16.             // TODO Auto-generated method stub    
  17.             ad.setOneShot(false);                               //循环播放  
  18.             ad.start();                                     //开始动画  
  19.         }  
  20.     });  
  21.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  22.           
  23.         @Override  
  24.         public void onClick(View v) {  
  25.             // TODO Auto-generated method stub  
  26.             ad.stop();                                      //停止动画  
  27.         }  
  28.     });  
  29. }  
  30. }  

在这段代码中,首先声明了帧动画对象。然后,在第一个按钮监听器中使用setOneShot方法设置循环播放,之后直接调用start方法来开始动画执行,在第二个按钮监听器中直接调用stop方法来停止动画执行。这样,读者执行这段代码,当点击"执行动画"按钮时,将看到动画循环播放的效果。
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节







9.8.5 setAlpha方法:设置透明度

2012-04-11 14:01 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍setAlpha方法:设置透明度。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.8.5  setAlpha方法:设置透明度

【功能说明】该方法用于设置帧动画播放过程中图片的透明度。该方法经常用于一些特效显示效果的场合。

【基本语法】public void setAlpha (int alpha)

其中,参数alpha表示图片的透明度,取值范围为0~255。

【实例演示】下面通过代码来演示如何改变帧动画播放时的透明度。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final AnimationDrawable ad=(AnimationDrawable)image.getBackground();                                                                        //声明帧动画对象  
  12.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  13.           
  14.         @Override  
  15.         public void onClick(View v) {  
  16.             // TODO Auto-generated method stub    
  17.             ad.setAlpha(100);                                   //设置透明度  
  18.             ad.start();                                     //开始动画  
  19.         }  
  20.     });  
  21.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  22.           
  23.         @Override  
  24.         public void onClick(View v) {  
  25.             // TODO Auto-generated method stub  
  26.             ad.stop();                                      //停止动画  
  27.         }  
  28.     });  
  29. }  
  30. }  

在这段代码中,首先声明了帧动画对象。然后,在第一个按钮监听器中使用setAlpha方法设置动画播放时的透明度,之后直接调用start方法来开始动画执行,在第二个按钮监听器中直接调用stop方法来停止动画执行。这样,读者执行这段代码,当点击"执行动画"按钮时,将看到淡淡的、带有一定透明度的动画播放效果,如图9.20所示。
8.2.12 drawArc方法:绘制圆弧_第25张图片 
图9.20  改变透明度
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节

原文:9.8.5 setAlpha方法:设置透明度 返回读书频道首页









9.8.6 getNumberOfFrames方法:获取帧数

2012-04-11 14:01 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为大家介绍getNumberOfFrames方法:获取帧数。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.8.6  getNumberOfFrames方法:获取帧数

【功能说明】该方法用于获取动画的帧个数,也就是按照顺序播放了几张图片。该方法常常用于获取帧动画对象特性的场合。

【基本语法】public int getNumberOfFrames ()

【实例演示】下面通过代码来演示如何获取帧动画播放帧的个数。

    
    
    
    
  1. public class firstActivity extends Activity {  
  2. /** Called when the activity is first created. */  
  3. @Override  
  4. public void onCreate(Bundle savedInstanceState) {               //重载onCreate方法  
  5.     super.onCreate(savedInstanceState);  
  6.     setContentView(R.layout.main);  
  7.  
  8.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  9.     Button btn1=(Button)findViewById(R.id.button1);             //按钮对象  
  10.     Button btn2=(Button)findViewById(R.id.button2);  
  11.     final AnimationDrawable ad=(AnimationDrawable)image.getBackground();                                                                        //声明帧动画对象  
  12.     btn1.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  13.           
  14.         @Override  
  15.         public void onClick(View v) {  
  16.             // TODO Auto-generated method stub    
  17.             int num;  
  18.             ad.start();                                     //开始动画  
  19.             num=ad.getNumberOfFrames();                     //获取帧数  
  20.             Toast.makeText(getApplicationContext(), "当前动画需要播放"+num+"帧",   
  21.                         Toast.LENGTH_LONG).show();                      //显示  
  22.         }  
  23.     });  
  24.     btn2.setOnClickListener(new View.OnClickListener() {            //设置监听器  
  25.           
  26.         @Override  
  27.         public void onClick(View v) {  
  28.             // TODO Auto-generated method stub  
  29.             ad.stop();                                      //停止动画  
  30.         }  
  31.     });  
  32. }  
  33. }  

在这段代码中,首先声明了帧动画对象。然后,在第一个按钮监听器中直接调用start方法来开始动画执行,通过getNumberOfFrames方法获取帧数并显示。在第二个按钮监听器中直接调用stop方法来停止动画执行。这样,读者执行这段代码,当点击"执行动画"按钮时,将看到动画播放,并显示动画的帧数,如图9.21所示。
8.2.12 drawArc方法:绘制圆弧_第26张图片 
图9.21  获取帧数
【责任编辑: book TEL:(010)68476606】

回书目   上一节   下一节

原文:9.8.6 getNumberOfFrames方法:获取帧数 返回读书频道首页





9.9 小结

2012-04-11 14:04 杨明羽 电子工业出版社  字号: T |  T

综合评级:

想读(3)  在读(0)  已读(0)   品书斋鉴(0)   已有3人发表书评

一键收藏,随时查看,分享好友!

《Android语法范例参考大全》第9章Android动画效果,本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。本节为本章的小结部分。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

9.9  小结

动画技术能够给应用程序带来丰富的特效,增强用户体验。Android系统提供了两种动画实现方式,补间动画(Tween Animation)和帧动画(Frame Animation)。补间动画可以对View对象进行简单的移动、旋转、缩放和渐变等效果,帧动画则提供了传统的逐帧播放图片的动画方式。本章主要介绍了补间动画类和帧动画类中的主要动画编程方法。




http://book.51cto.com/art/201204/328247.htm

http://book.51cto.com/art/201204/328247.htm

http://book.51cto.com/art/201204/328247.htm

http://book.51cto.com/art/201204/328247.htm

http://book.51cto.com/art/201204/328247.htm

http://book.51cto.com/art/201204/328247.htmhttp://book.51cto.com/art/201204/328247.htmhttp://book.51cto.com/art/201204/328247.htmhttp://book.51cto.com/art/201204/328247.htm

http://book.51cto.com/art/201204/328247.htm

http://book.51cto.com/art/201204/328247.htmhttp://book.51cto.com/art/201204/328247.htmhttp://book.51cto.com/art/201204/328247.htm



http://book.51cto.com/art/201204/328247.htm





http://book.51cto.com/art/201204/328247.htm







http://book.51cto.com/art/201204/328247.htm









http://book.51cto.com/art/201204/328247.htm
http://book.51cto.com/art/201204/328247.htm









http://book.51cto.com/art/201204/328247.htm
http://book.51cto.com/art/201204/328247.htm







http://book.51cto.com/art/201204/328247.htm
http://book.51cto.com/art/201204/328247.htmhttp://book.51cto.com/art/201204/328247.htm











http://book.51cto.com/art/201204/328247.htm

你可能感兴趣的:(8.2.12 drawArc方法:绘制圆弧)