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"><TextViewandroid: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的引用@Overridepublic 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易做图ceViewimplements Su易做图ceHolder.Callback{//此处实现Su易做图ceHolder.Callback接口,为su易做图ceView添加生命周期回调函数int dy=Display.DEFAULT_DISPLAY;MyActivity ma; //得到MyActivity的引用Paint paint; //画笔的引用OnDrawThread odt; //OnDrawThread类引用 &nbs补充:移动开发 , 其他 ,
上一个:mvc应用到cocos2d的简单理解
下一个:动态替换内核函数
- 更多wap疑问解答:
- 新人求助QPainter
- 为什么程序都退出了还可以收到推送?如果大多设备都可以推送那运营商怎么办?
- qt 4.7 sqlserver2000 存储过程调用
- 关于ANDROID4.0.1编译问题!
- Android FrameBuffer读屏幕30秒后mmap失败
- 联通粗定位用java程序如何来请求和接受数据
- 为什么QT运行Android平台的程序时,mouseMoveEvent事件响应的间隔时间很长??????????
- android与PC蓝牙通讯
- 指定大小的label 内容可变,如果内容超出label的宽度,将未能显示的部分显示在另一个label上
- Android调试
- android如何通过wifi连接无线打印机
- 运行程序,release目录下产生一个乱码文件夹
- 分享个某机构最新安卓资料,自己验证了
- service启动不起来,掉不了service connection
- 求助:QT5.0 没有QPrinter吗