WEB开发网
开发学院手机开发Android 开发 Android实现拖动效果 阅读

Android实现拖动效果

 2010-07-20 13:37:00 来源:WEB开发网   
核心提示:要实现的效果就是在界面上拖动这一个按钮到处跑步骤如下:1. 布局文件< ?xml version="1.0" encoding="utf-8"?>< LinearLayout xmlns:android="http://schemas.android.

要实现的效果就是在界面上拖动这一个按钮到处跑步骤如下:

1. 布局文件

< ?xml version="1.0" encoding="utf-8"?>

< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent">

< Button android:id="@+id/btn_hello" android:layout_width="fill_parent"

android:layout_height="wrap_content" android:text="@string/hello" />

< /LinearLayout>

2. 代码

package com.roiding.sample;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnTouchListener;

import android.widget.Button;

public class Touch extends Activity {

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

final Button btn = (Button) findViewById(R.id.btn_hello);

btn.setOnTouchListener(new OnTouchListener() {

int[] temp = new int[] { 0, 0 };

public boolean onTouch(View v, MotionEvent event) {

int eventaction = event.getAction();

Log.i("&&&", "onTouchEvent:" + eventaction);

int x = (int) event.getRawX();

int y = (int) event.getRawY();

switch (eventaction) {

case MotionEvent.ACTION_DOWN: // touch down so check if the

temp[0] = (int) event.getX();

temp[1] = y - v.getTop();

break;

case MotionEvent.ACTION_MOVE: // touch drag with the ball

v.layout(x - temp[0], y - temp[1], x + v.getWidth() - temp[0], y - temp[1] + v.getHeight());

v.postInvalidate();

break;

case MotionEvent.ACTION_UP:

break;

}

return false;

}

});

}

}

Tags:Android 实现 拖动

编辑录入:coldstar [复制链接] [打 印]
赞助商链接