自定义view完成简单的小游戏----手指兔子

来源:互联网 发布:机关游泳馆办卡通知 编辑:程序博客网 时间:2024/04/29 03:48

虽然Android提供了很多继承了View类的UI组件,但是在实际开发中,还会出现不足以满足程序需要的情况。这时,用户就可以通过View类来开发自己的组件。

下面我们就来自定义View来实现一个小游戏--手指兔子。

1、首先自定义一个RabbitView继承于View类,病重写构造方法,然后根据需要重写相应的方法

public class RabbitView extends View {    public float bitmapX;//小兔子显示位置的X坐标    public float bitmapY;//小兔子显式位置的Y坐标
//重写构造方法    public RabbitView(Context context) {        super(context);
//设置小兔子默认显式的位置XY坐标        bitmapX = 100;        bitmapY = 100;    }
//重写onDraw方法    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);
//创建并实例化Paint对象        Paint paint = new Paint();
//根据图片生成位图对象        Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.rabbit);
//绘制小兔子        canvas.drawBitmap(bitmap,bitmapX,bitmapY,paint);
//判断图片是否回收        if(bitmap.isRecycled()){
//强制回收图片            bitmap.recycle();        }    }}
2、在MainActivity中的onCreate()方法中作如下处理:
public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);
//获得布局        RelativeLayout relativeLayout = (RelativeLayout) findViewById(activity_main);
//创建并实例化RabbitView类        final RabbitView rabbit = new RabbitView(this);
//为小兔子添加触摸事件监听器        rabbit.setOnTouchListener(new View.OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {//设置小兔子显示位置的XY坐标                rabbit.bitmapX = event.getX();                rabbit.bitmapY = event.getY();
//重绘rabbit组件                rabbit.invalidate();                return true;            }        });
//将rabbit添加到布局中        relativeLayout.addView(rabbit);    }}
接下来就可以玩一玩儿啦,小兔子会随着你的手指的拖动轨迹而移动的,快去试试吧~

0 0
原创粉丝点击