当前位置:编程学习 > wap >>

Su易做图ceView显示动画效果

一、基础知识:
Su易做图ceView继承自View,View负责在主线程中更新动画,而Su易做图ceView是在一个新线程中更新动画。
 
Su易做图ceView类的主要方法:
// 在Su易做图ceView创建时调用
pubilic abstract void su易做图ceCreated(Su易做图ceHolder holder)
// 在Su易做图ceView改变时调用
pubilic abstract void su易做图ceChanged(Su易做图ceHolder holder, int format, int width, int height)
// 在Su易做图ceView销毁时调用
pubilic abstract void su易做图ceDestroyed(Su易做图ceHolder holder)
// 绘制Su易做图ceView画面
protected void onDraw(Canvas canvas)
(参数canvas是该Su易做图ceView的画笔,每一次Su易做图ceView中画面改变都是调用了该方法)
 
二、实现效果:
首先有一副图片从屏幕的左下角开始向右上方运动,当图片上沿与手机屏幕上沿相撞时,图片的水平速度大小与方向均不变,竖直方向上速度大小不变,
方向相反;当下沿相撞后,同样效果,直到图片飞出屏幕。之后,屏幕渐渐地显示一幅图片。
 
三、编程实现:
1. 界面编辑(res\layout\main.xml):
[java]  
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    >  
<TextView    
    android:layout_width="fill_parent"   
    android:layout_height="wrap_content"   
    android:text="@string/hello"  
    />  
</LinearLayout>  
 
2. 代码编辑:
(\src\wyf\zcl\MyActivity.java)
[java] 
package wyf.zcl;  
/* 
 *  该例子演示su易做图ceView中简单场景的绘制 
 *  MyActivity.java     为程序的主Activity 
 *  MySu易做图ceView.java  为程序的Su易做图ceView类 
 *  Constant.java       常量类,将常量全部写在该类中 
 *  OnDrawThread.java   该类的作用是时时刷新onDraw,进行画面的重绘 
 *  PicRunThread.java   该类是控制duke图片运动的类 
 * */  
import android.app.Activity;                        //引入相关包  
import android.content.pm.ActivityInfo;             //引入相关包  
import android.os.Bundle;                           //引入相关包  
import android.view.Window;                         //引入相关包  
import android.view.WindowManager;                  //引入相关包   
public class MyActivity extends Activity {  
    /** Called when the activity is first created. */  
    private MySu易做图ceView msv;          //得到su易做图ceView的引用  
    @Override  
    public void onCreate(Bundle savedInstanceState) {   //Activity的生命周期函数,该函数是在程序创建时调用  
        super.onCreate(savedInstanceState);  
        msv=new MySu易做图ceView(MyActivity.this);         //实例化MySu易做图ceView的对象  
        requestWindowFeature(Window.FEATURE_NO_TITLE);  //设置屏幕显示没有title栏   
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN ,    
                      WindowManager.LayoutParams.FLAG_FULLSCREEN);  //设置全屏  
        //设置只允许横屏  
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);  
        setContentView(msv);                            //设置Activity显示的内容为msv  
    }  
}  
 
(\src\wyf\zcl\Constant.java)
[java]  
package wyf.zcl;  
import android.view.Display;  
//Constant.java     常量类,将常量全部写在该类中  
public class Constant {  
    public static int SCREENWIDTH=480;  //屏幕宽(本程序为横屏)  
    public static int SCREENHEIGHT=320;     //屏幕高  
    public static int PICWIDTH=64;          //图片宽度  
    public static int PICHEIGHT=64;         //图片高度  
    public static int ONDRAWSPEED=30;       //onDraw线程类的绘制间隔时间  
    public static float PICXSPEED=1.5f;     //图片水平移动速度  
    public static float PICYSPEED=2;        //图片垂直移动速度  
    public static int PICRUNSPEED=30;       //图片的运动线程的刷新速度  
    public static int PICALPHASPEED=20; //图片渐暗效果演示刷新速度  
}  
 
(\src\wyf\zcl\MySu易做图ceView.java)
[java] 
package wyf.zcl;  
import android.content.Context;                 //引入相关包  
import android.graphics.Bitmap;                 //引入相关包  
import android.graphics.BitmapFactory;          //引入相关包  
import android.graphics.Canvas;                 //引入相关包  
import android.graphics.Color;                  //引入相关包  
import android.graphics.Paint;                  //引入相关包  
import android.view.Display;                    //引入相关包  
import android.view.Su易做图ceHolder;              //引入相关包  
import android.view.Su易做图ceView;                //引入相关包  
public class MySu易做图ceView extends Su易做图ceView  
implements Su易做图ceHolder.Callback{            
    //此处实现Su易做图ceHolder.Callback接口,为su易做图ceView添加生命周期回调函数  
    int dy=Display.DEFAULT_DISPLAY;  
    MyActivity ma;                          //得到MyActivity的引用  
    Paint paint;                            //画笔的引用  
    OnDrawThread odt;                       //OnDrawThread类引用 &nbs
补充:移动开发 , 其他 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,