Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 525|回复: 0

Android 响应键盘移动图标

[复制链接]

该用户从未签到

发表于 2012-3-23 11:45:42 | 显示全部楼层 |阅读模式

    [li]package rw.SurFace;[/li][li][/li][li][/li][li]import android.app.Activity;[/li][li]import android.content.Context;[/li][li]import android.graphics.Bitmap;[/li][li]import android.graphics.BitmapFactory;[/li][li]import android.graphics.Canvas;[/li][li]import android.graphics.Color;[/li][li]import android.graphics.Paint;[/li][li]import android.os.Bundle;[/li][li]import android.util.DisplayMetrics;[/li][li]import android.util.Log;[/li][li]import android.view.KeyEvent;[/li][li]import android.view.SurfaceView;[/li][li][/li][li]public class Surfaecview01Activity extends Activity {[/li][li]    /** Called when the activity is first created. */[/li][li]        DisplayMetrics sMetrics;[/li][li]         Thread maintThread;[/li][li]         MysurfaceView view;[/li][li]         boolean up,down,right,left;[/li][li]        class MysurfaceView extends SurfaceView implements Runnable{[/li][li]        Bitmap bitmap;[/li][li][/li][li]        Paint paint=new Paint();[/li][li]        long time;[/li][li]        int Coord_x,Coord_y;[/li][li]        int x,y;[/li][li]                public MysurfaceView(Context context) {[/li][li]                        super(context);[/li][li]                        // TODO Auto-generated constructor stub[/li][li][/li][li]                        setFocusable(true);//可以聚焦[/li][li]                        bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.a);[/li][li]                        paint.setColor(Color.BLUE);[/li][li]                        paint.setTextSize(20);[/li][li]                        x=bitmap.getWidth();[/li][li]                        y=bitmap.getHeight()/2;[/li][li]                        maintThread=new Thread(this);[/li][li]                        maintThread.start();[/li][li]                }[/li][li][/li][li]                @Override[/li][li]                public void run() {[/li][li]                        // TODO Auto-generated method stub[/li][li]                        while (true) {[/li][li]                                DoDraw();[/li][li]                        }[/li][li]                }[/li][li]                 void DoDraw()[/li][li]                    {[/li][li]                            Canvas canvas=getHolder().lockCanvas();[/li][li]                            if (canvas!=null) {[/li][li]                                        canvas.drawColor(Color.WHITE);[/li][li]                                        if (up) Coord_y--;[/li][li]                                        if(down) Coord_y++;[/li][li]                                        if(left) Coord_x--;[/li][li]                                        if (right) Coord_x++;[/li][li]                                        canvas.drawBitmap(bitmap, Coord_x*10, Coord_y*10, null);[/li][li][/li][li]                                        long now=System.currentTimeMillis();[/li][li]                                        canvas.drawText(""+1000/(now-time)+"fps", x, y, paint);[/li][li]                                        time=now;[/li][li]                                        getHolder().unlockCanvasAndPost(canvas);[/li][li]                                }[/li][li]                    }[/li][li]        }[/li][li]    @Override[/li][li]    public void onCreate(Bundle savedInstanceState) {[/li][li]        super.onCreate(savedInstanceState);[/li][li]        sMetrics=new DisplayMetrics();[/li][li]        getWindowManager().getDefaultDisplay().getMetrics(sMetrics);[/li][li]        /*[/li][li]         * 获取屏幕大小[/li][li]         */[/li][li]                int Met_X=sMetrics.widthPixels;[/li][li]                int Met_Y=sMetrics.heightPixels;[/li][li]                Log.i("X--------->", Met_X+"");[/li][li]                Log.i("Y--------->", Met_Y+"");[/li][li]        setContentView(new MysurfaceView(this));[/li][li]    }[/li][li][/li][li]        @Override[/li][li]        public boolean onKeyDown(int keyCode, KeyEvent event) {[/li][li]                // TODO Auto-generated method stub[/li][li]                switch (keyCode) {[/li][li]                case KeyEvent.KEYCODE_DPAD_UP:[/li][li]                        up=true;[/li][li]                        break;[/li][li]        case KeyEvent.KEYCODE_DPAD_DOWN:[/li][li]                down=true;[/li][li]                break;[/li][li]        case KeyEvent.KEYCODE_DPAD_LEFT:[/li][li]                left=true;[/li][li]                break;[/li][li]        case KeyEvent.KEYCODE_DPAD_RIGHT:[/li][li]                right=true;[/li][li]                break;[/li][li]                default:[/li][li]                        break;[/li][li]                }[/li][li]                return super.onKeyDown(keyCode, event);[/li][li]        }[/li][li][/li][li]        @Override[/li][li]        public boolean onKeyUp(int keyCode, KeyEvent event) {[/li][li]                // TODO Auto-generated method stub[/li][li]                switch (keyCode) {[/li][li]                case KeyEvent.KEYCODE_DPAD_UP:[/li][li]                        up=false;[/li][li]                        break;[/li][li]        case KeyEvent.KEYCODE_DPAD_DOWN:[/li][li]                down=false;[/li][li]                break;[/li][li]        case KeyEvent.KEYCODE_DPAD_LEFT:[/li][li]                left=false;[/li][li]                break;[/li][li]        case KeyEvent.KEYCODE_DPAD_RIGHT:[/li][li]                right=false;[/li][li]                break;[/li][li]                default:[/li][li]                        break;[/li][li]                }[/li][li]                return super.onKeyUp(keyCode, event);[/li][li]        }[/li][li][/li][li]        /* (non-javadoc)[/li][li]         * @see android.app.Activity#onDestroy()[/li][li]         */[/li][li]        @Override[/li][li]        protected void onDestroy() {[/li][li]                // TODO Auto-generated method stub[/li][li]                Thread.interrupted();[/li][li]                super.onDestroy();[/li][li]        }[/li][li][/li][li]}
    [/li]

复制代码







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 22:38 , Processed in 0.374333 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表