android 动态移动控件,Android基于widget组件实现物体移动/控件拖动功能示例

本文实例讲述了Android基于widget组件实现物体移动/控件拖动功能。分享给大家供大家参考,具体如下:

package com.sky;

import android.app.Activity;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AbsoluteLayout;

import android.widget.Button;

@SuppressWarnings("deprecation")

public class AbosoluteMove extends Activity implements OnClickListener

{

/** Called when the activity is first created. */

public Button button1;

public Button button2;

public Button button3;

public Button button4;

Button tmp;//临时保存,选择的BUTTON

int x;

int y;

int flag;//用于标志选择哪个BUTTON

@Override

public void onCreate(Bundle savedInstanceState)

{

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

public void onClick(View v)

{

// TODO Auto-generated method stub

switch(v.getId())

{

case R.id.widget27:

flag=R.id.widget27;

setTitle("button1");

break;

case R.id.widget28:

flag=R.id.widget28;

setTitle("button2");

break;

case R.id.widget29:

flag=R.id.widget29;

setTitle("button3");

break;

case R.id.widget30:

flag=R.id.widget30;

setTitle("button4");

break;

}

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event)

{

// TODO Auto-generated method stub

return super.onKeyDown(keyCode, event);

}

@Override

public boolean onTouchEvent(MotionEvent event)

{

// TODO Auto-generated method stub

x = (int) event.getX();

y = (int) event.getY();

tmp=(Button) findViewById(flag);//获取所选中的BUTTON

AbsoluteLayout.LayoutParams params1=new AbsoluteLayout.LayoutParams(50,50,x-25,y-50);

tmp.setLayoutParams(params1);//设置BUTTON的新位置

switch(event.getAction())

{

case MotionEvent.ACTION_DOWN:

tmp.invalidate();

tmp.setText("选中down");

break;

case MotionEvent.ACTION_UP:

tmp.invalidate();

tmp.setText("选中UP");

break;

case MotionEvent.ACTION_MOVE:

tmp.invalidate();

tmp.setText("选中move");

break;

}

return super.onTouchEvent(event);

}

}

希望本文所述对大家Android程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值