美文网首页
Android 第十三天

Android 第十三天

作者: yezi1989 | 来源:发表于2018-06-22 17:58 被阅读5次

    今天开始准备写个小游戏,找资料,考虑架构 布局 UI。。。

    iOS开发一直都是应用开发,没有做过游戏开发,突然想写个小游戏发现好难啊,简直无从下手。第一、对控件的了解不够  第二、对游戏的整体架构不懂。等于今天什么都没弄出来。

    要坚持下去吗?小伙伴们给点建议


    今天学到的知识点:

    1、onclick和onDrag 、ontouch区别,冲突解决方法

    2. Imageview随手指拖动同时原视图不见,停止拖动后停留对应位置。

    3、复习了粘贴板、拖放、自定义控件。

    // 拖动后视图跟随移动

    private class ImgOnTouchListenerimplements View.OnTouchListener

    {

    @RequiresApi(api = Build.VERSION_CODES.N)

    @Override

        public boolean onTouch(View v, MotionEvent event) {

    // event.getX 获取X坐标,event.getY获取Y坐标

            String sInfo ="X=" + String.valueOf(event.getX()) +"  Y=" + String.valueOf(event.getY());

    // 提供位置数据"粘贴板"

            myClipBoard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);

    ClipData data = ClipData.newPlainText("point",sInfo);

    myClipBoard.setPrimaryClip(data);

    // 重绘视图

            View.DragShadowBuilder shadowBuilder =new View.DragShadowBuilder(v);

    // 开始沿拖拽路径绘制视图副本 这个是异步方法,启动起步线程后很快返回

            v.startDragAndDrop(data,shadowBuilder,v,0);

    // 使原视图不可见

            v.setVisibility(View.INVISIBLE);

    return true;

    }

    }

    // 拖动停止后,拖动停止位置展示视图

    class MyDragListenerimplements View.OnDragListener

    {

    @Override

        public boolean onDrag(View v, DragEvent event) {

    int action = event.getAction();

    switch (event.getAction())

    {

    case DragEvent.ACTION_DRAG_STARTED:

    break;

    case DragEvent.ACTION_DRAG_ENTERED:

    break;

    case DragEvent.ACTION_DRAG_LOCATION:

    break;

    case DragEvent.ACTION_DRAG_EXITED:

    break;

    case DragEvent.ACTION_DRAG_ENDED:

    break;

    case DragEvent.ACTION_DROP:

    // view 实际上就是imageview

                    View view = (View)event.getLocalState();

    // owner 实际上就是父视图

                    ViewGroup owner = (ViewGroup)view.getParent();

    owner.removeView(view);

    // v 实际上是GridView

                    RelativeLayout gridView = (RelativeLayout) v;

    gridView.addView(view);

    view.setVisibility(View.VISIBLE);

    ClipData data =myClipBoard.getPrimaryClip();

    ClipData.Item item = data.getItemAt(0);

    String point = item.getText().toString();

    break;

    default:

    break;

    }

    return true;

    }

    }

    相关文章

      网友评论

          本文标题:Android 第十三天

          本文链接:https://www.haomeiwen.com/subject/ttucyftx.html