• 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. 实验总结

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

  • 相关阅读:
    N皇后
    逆波兰中缀转后缀代码
    ImportError: No module named Image
    稳定排序 和 不稳定排序 ::::::::::: 内排序和外排序
    逆波兰中 中缀表达式转后缀表达式的方法
    第一章:Unix基础知识
    软件设计流程
    linux 下 tar.xz 文件的解压方法
    fedora 解决 Python.h:没有那个文件或目录 错误的方法
    Shell排序
  • 原文地址:https://www.cnblogs.com/CJR-QYF/p/12918148.html
Copyright © 2020-2023  润新知