展会信息港展会大全

Android简单滑动例子
来源:互联网   发布日期:2016-01-14 11:19:47   浏览:1321次  

导读:因为觉得Android中用到滑动的地方太多,所以再写一篇简单的滑动例子方便以后查看。效果图:activity类代码:packagecom.TouchView;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.Moti......

因为觉得Android中用到滑动的地方太多,所以再写一篇简单的滑动例子方便以后查看。

效果图:

activity类代码:

package com.TouchView;

import android.app.Activity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.View;

import android.widget.TextView;

public class TouchView extends Activity {

private TextView eventlable;

private TextView histroy;

private TextView TouchView;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

TouchView = (TextView) findViewById(R.id.touch_area);

histroy = (TextView) findViewById(R.id.history_label);

eventlable = (TextView) findViewById(R.id.event_label);

TouchView.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

int action = event.getAction();

switch (action) {

// 当按下的时候

case (MotionEvent.ACTION_DOWN):

Display("ACTION_DOWN", event);

break;

// 当按上的时候

case (MotionEvent.ACTION_UP):

int historysize = ProcessHistory(event);

histroy.setText("历史数据" + historysize);

Display("ACTION_UP", event);

break;

// 当触摸的时候

case (MotionEvent.ACTION_MOVE):

Display("ACTION_MOVE", event);

}

return true;

}

});

}

public void Display(String eventType, MotionEvent event) {

// 触点相对坐标的信息

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

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

// 表示触屏压力大小

float pressure = event.getPressure();

// 表示触点尺寸

float size = event.getSize();

// 获取绝对坐标信息

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

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

String msg = "";

msg += "事件类型" + eventType + "\n";

msg += "相对坐标" + String.valueOf(x) + "," + String.valueOf(y) + "\n";

msg += "绝对坐标" + String.valueOf(RawX) + "," + String.valueOf(RawY)

+ "\n";

msg += "触点压力" + String.valueOf(pressure) + ",";

msg += "触点尺寸" + String.valueOf(size) + "\n";

eventlable.setText(msg);

}

public int ProcessHistory(MotionEvent event) {

int history = event.getHistorySize();

for (int i = 0; i < history; i++) {

long time = event.getHistoricalEventTime(i);

float pressure = event.getHistoricalPressure(i);

float x = event.getHistoricalX(i);

float y = event.getHistoricalY(i);

float size = event.getHistoricalSize(i);

}

return history;

}

}

main.xml代码部分:

<?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">

<TextView

android:id="@+id/touch_area"

android:layout_width="fill_parent"

android:layout_height="300dip"

android:background="#0FF"

android:textColor="#FFFFFF"

android:text="触摸事件测试区"

/>

<TextView

android:id="@+id/history_label"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="历史数据"

/>

<TextView

android:id="@+id/event_label"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="触摸事件:"

/>

</LinearLayout>

赞助本站

人工智能实验室

相关热词: 滑动

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港