Android基于widget组件实现物体移动/控件拖动功能示例
本文实例讲述了Android基于widget组件实现物体移动/控件拖动功能。分享给大家供大家参考,具体如下:
packagecom.sky; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.KeyEvent; importandroid.view.MotionEvent; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.AbsoluteLayout; importandroid.widget.Button; @SuppressWarnings("deprecation") publicclassAbosoluteMoveextendsActivityimplementsOnClickListener { /**Calledwhentheactivityisfirstcreated.*/ publicButtonbutton1; publicButtonbutton2; publicButtonbutton3; publicButtonbutton4; Buttontmp;//临时保存,选择的BUTTON intx; inty; intflag;//用于标志选择哪个BUTTON @Override publicvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button1=(Button)findViewById(R.id.widget27); button2=(Button)findViewById(R.id.widget28); button3=(Button)findViewById(R.id.widget29); button4=(Button)findViewById(R.id.widget30); button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); button4.setOnClickListener(this); } @Override publicvoidonClick(Viewv) { //TODOAuto-generatedmethodstub switch(v.getId()) { caseR.id.widget27: flag=R.id.widget27; setTitle("button1"); break; caseR.id.widget28: flag=R.id.widget28; setTitle("button2"); break; caseR.id.widget29: flag=R.id.widget29; setTitle("button3"); break; caseR.id.widget30: flag=R.id.widget30; setTitle("button4"); break; } } @Override publicbooleanonKeyDown(intkeyCode,KeyEventevent) { //TODOAuto-generatedmethodstub returnsuper.onKeyDown(keyCode,event); } @Override publicbooleanonTouchEvent(MotionEventevent) { //TODOAuto-generatedmethodstub x=(int)event.getX(); y=(int)event.getY(); tmp=(Button)findViewById(flag);//获取所选中的BUTTON AbsoluteLayout.LayoutParamsparams1=newAbsoluteLayout.LayoutParams(50,50,x-25,y-50); tmp.setLayoutParams(params1);//设置BUTTON的新位置 switch(event.getAction()) { caseMotionEvent.ACTION_DOWN: tmp.invalidate(); tmp.setText("选中down"); break; caseMotionEvent.ACTION_UP: tmp.invalidate(); tmp.setText("选中UP"); break; caseMotionEvent.ACTION_MOVE: tmp.invalidate(); tmp.setText("选中move"); break; } returnsuper.onTouchEvent(event); } }
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android基本组件用法总结》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。