zoukankan      html  css  js  c++  java
  • Eclipse Android 手机开发作业---空中的气球

    一、添加跳舞的背景图片

    在之前创建的Android项目中的Activity中添加以下代码来实现添加背景图片。

    代码:android:background="@drawable/background"

     

    图(1)添加背景图片

    二、实现空中的气球

    选中你需要的气球图片,将其存放在工程目录res/drawable文件夹,需要新建一个文件夹存放图片。

     

    图(2)新建一个drawable文件夹

    实现小人跳舞所示代码:

    package com.example.ballon;
    
    import java.util.Random;
    
    import android.app.Activity;
    import android.graphics.Point;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.Display;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.ImageView;
    
    public class MainActivity extends Activity {
    
        private boolean flag = true;//标记变量
        private boolean flag_x = true;//为true表示从左向右
        private ImageView img_ball;//声明一个ImageView对象
        private Handler handler;//声明一个Handler对象
        private int x = 10;
        private int y = 100;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            img_ball = (ImageView)findViewById(R.id.img_ball);//获取ImageView对象
            Display display = getWindowManager().getDefaultDisplay();
            //获取一个屏幕的实例
            Point point = new Point();
            //实例一个点
            display.getRealSize(point);
            //获取当前屏幕的大小
            final int mScreenW = point.x;
            //获得屏幕的的宽度
            handler = new Handler() {
                @Override
                public void handleMessage(Message msg) {
                    int move_x = 0;
                    if(msg.what == 0x101) {
                        move_x = msg.arg1;//获取移动的距离
                        if(x > (mScreenW - img_ball.getWidth())) {
                            flag_x = false;
                        }
                        else if(x < img_ball.getWidth()) {
                            flag_x = true;
                        }
                        if(flag_x) {
                            x += move_x;
                        }
                        else {
                            x -= move_x;
                        }
                        
                        if(flag) {
                            y -= 10;
                            flag = false;
                        }else {
                            y += 10;
                            flag = true;
                        }
                        img_ball.setX(x);//设置x轴距离
                        img_ball.setX(y);//设置y轴距离
                    }
                    super.handleMessage(msg);
                }
            };
            Thread t = new Thread(new Runnable() {
                @Override
                public void run() {
                    int index = 0;//移动的距离
                    while(!Thread.currentThread().isInterrupted()) {
                        index = new Random().nextInt(20);//产生一个随机数
                        
                        Message m = handler.obtainMessage();//获取一个Message
                        m.what = 0x101;//设置消息标示
                        m.arg1 = index;//设置移动距离
                        handler.sendMessage(m);//发送消息
                        
                        try {
                            //休眠一段时间
                            Thread.sleep(new Random().nextInt(500) + 500);
                        }catch(InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    
                }
            });
            t.start();
        }
    }

    三、实验中的错误

    运行时报如下错:

     

    图(3)出错实例

    解决方案:将本项目从Eclipse中删除,在重启即可。

    四、实验效果

     

  • 相关阅读:
    【InfoPath2007】The form has been closed
    深入浅出Nintex——调用子流程
    深入浅出Nintex——使用查询XML动作
    深入浅出Nintex——使用Call WebService来查询Item ID
    深入浅出Nintex——获得某群组的用户集合
    深入浅出SharePoint2007——Webpart开发
    深入浅出Nintex——获得指定用户的角色
    深入浅出Nintex——使用构建动态字符串动作
    Lucene.net 实现全文搜索
    DotLucene源码浅读笔记(1)补遗:编写简单中文分词器ChineseAnalyzer
  • 原文地址:https://www.cnblogs.com/CJR-QYF/p/12738851.html
Copyright © 2011-2022 走看看