当前位置:操作系统 > 安卓/Android >>

[Android开发学习08]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> 

<?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  
    } 

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\Consta

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,