⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 events.java

📁 Android从入门到精通
💻 JAVA
字号:
package com.androidbook.views;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.Button;
import android.widget.TextView;

public class Events extends
    Activity {
    private String mSaveText = null;
    private GestureDetector mGestures = null;

    @Override
    public boolean onTouchEvent(
        MotionEvent event) {
        if (mGestures != null) {
            return mGestures
                .onTouchEvent(event);
        } else {
            return super
                .onTouchEvent(event);
        }
    }

    @Override
    protected void onCreate(
        Bundle savedInstanceState) {
 
        super
            .onCreate(savedInstanceState);
        
        setContentView(R.layout.events);
        
        /* events to demonstrate:
        touch mode changes
        events on entire screen
        long press
        gesture
        focus changes on views        
        key events -- hmm... not working the way i thought, maybe skip
        */
        
        final TextView events = (TextView)findViewById(R.id.last_event_text);
        
        View all = findViewById(R.id.events_screen);
        
ViewTreeObserver vto =
    all
        .getViewTreeObserver();
vto
    .addOnTouchModeChangeListener(new ViewTreeObserver.OnTouchModeChangeListener() {

        public void onTouchModeChanged(
            boolean isInTouchMode) {
            events
                .setText("Touch mode: "
                    + isInTouchMode);
        }
    });
        
        vto.addOnGlobalFocusChangeListener(new ViewTreeObserver.OnGlobalFocusChangeListener() {

            public void onGlobalFocusChanged(
                View oldFocus, View newFocus) {
                if (oldFocus != null && newFocus != null) {
                    events.setText("Focus \nfrom: " + oldFocus.toString() + " \nto: " + newFocus.toString());    
                }
            }
        });

        Button long_press = (Button)findViewById(R.id.long_press);
        long_press.setOnLongClickListener(new View.OnLongClickListener() {

            public boolean onLongClick(View v) {
                // we know what View already, use it anyway
                events.setText("Long click: " + v.toString());
                return true;
            }
            
        });
        
               
        mGestures = new GestureDetector( new GestureDetector.SimpleOnGestureListener() {

            @Override
            public boolean onFling(
                MotionEvent e1, MotionEvent e2, float velocityX,
                float velocityY) {
                events.setText("Fling! \nx= " + velocityX + "px/s\ny="+velocityY + "px/s");
                
                return super
                    .onFling(
                        e1, e2, velocityX, velocityY);
            }

            @Override
            public boolean onScroll(
                MotionEvent e1, MotionEvent e2, float distanceX,
                float distanceY) {
                events.setText("Scroll! \nX = " + distanceX + "\nY = " +distanceY);
                return super 
                    .onScroll(
                        e1, e2, distanceX, distanceY);
            }
        });
        
        TextView focus = (TextView)findViewById(R.id.text_focus_change);
        focus.setOnFocusChangeListener(new View.OnFocusChangeListener() {

            public void onFocusChange(
                View v, boolean hasFocus) {
                
                if (hasFocus) {
                    if (mSaveText != null) {
                        ((TextView)v).setText(mSaveText);
                    }
                } else {
                    mSaveText = ((TextView)v).getText().toString();
                    ((TextView)v).setText("");
                
                }
            }
            
        });
        
        
    }

    @Override
    public boolean onKeyDown(
        int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        return super
            .onKeyDown(
                keyCode, event);
    }

    @Override
    public boolean onKeyMultiple(
        int keyCode, int repeatCount, KeyEvent event) {
        Log.d(ViewsMenu.debugTag, "Multi code = "+keyCode);
        return super
            .onKeyMultiple(
                keyCode, repeatCount, event);
    }

    @Override
    public boolean onKeyUp(
        int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        return super
            .onKeyUp(
                keyCode, event);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -