zoukankan      html  css  js  c++  java
  • Eclipse Android 手机开发作业---心随指动

    1. 实验目的

    实现“心随指动”

    2. 实验内容

    在现有的项目中实现“心随指动”,实现物体随手指点击而移动。

    3. 实验代码(或步骤)

    3.1实现心随指动

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

     

    3.2.1新建一个drawable文件夹

    实现“心随指动”所示代码:

    MainActivity.java中的代码:

    package com.example.heart;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.View.OnTouchListener;
    import android.widget.FrameLayout;
    import android.widget.ImageView;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
    //        获取一个对象
            FrameLayout frame= (FrameLayout)findViewById(R.id.ic_launcher);
            final MyView person= new MyView(MainActivity.this);
    //        添加触摸监听器
            person.setOnTouchListener(new OnTouchListener(){
                public boolean onTouch (View view ,MotionEvent event){
    //                设置图片显示的位置
                    person.X=event.getX();
                    person.Y=event.getY();
    //                调用重绘方法
                    person.invalidate();
                    return true; 
                    }
                });
            frame.addView(person);
        }
    } 

    MyView.java的代码:

    package com.example.heart;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.view.View;
    
    public class MyView extends View {
    //    定义相关变量,依次是图片显示位置的X,Y坐标
    public float X;
    public float Y;
            public MyView (Context context) {
                super(context);
    //            设置图片的起始坐标
                X = 0;
                Y = 200;
            }
            
    //重写View类的onDraw()方法
    @Override
    protected void onDraw (Canvas canvas){
            super.onDraw(canvas);
            //创建且实例化Paint对象
            Paint paint =new Paint();
            //根据图片生成位图对象
            Bitmap bitmap= BitmapFactory.decodeResource(this.getResources(),R.drawable.ic_launcher);
            //绘制
            canvas.drawBitmap(bitmap,X,Y,paint);
            //判断图片是否回收
            if(bitmap.isRecycled()){
                bitmap.recycle() ;
            }
        }
    }

    4. 实验效果图

    心随指动的视频单独上传。

    5.实验中的错误

    1)运行时报如下错:

     

    5.1出错实例

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

    6. 实验总结

    通过本次实验,锻炼了我们的学习能力。

  • 相关阅读:
    ipandao markdown mathjax版本
    我们是不是太关注于语法而忽略了算法
    SVGG.JS 入门教程
    关于ipandao编辑器手机访问换行问题
    启明星采购系统新版发布
    仿MSDN的帮助系统
    十分钟打造一款在线的数学公式编辑器
    Search Filter Syntax
    从华为养猪说起,聊聊我对中国计算机发展的一个遗憾-为何我们没有开发出自己的编程语言
    从.NET看微软的焦虑
  • 原文地址:https://www.cnblogs.com/CJR-QYF/p/12918148.html
Copyright © 2011-2022 走看看