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程序设计有所帮助。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短