按键、长按、焦点改变、触摸事件的实现
来源:互联网 发布:冯远征演技知乎 编辑:程序博客网 时间:2024/05/14 01:06
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!-- 按键事件 开始 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" android:hint="@string/input" /> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/hello_world" android:paddingTop="10dp" /> </LinearLayout> <!-- 按键事件 结束 --> <!-- 焦点改变事件 开始 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:id="@+id/username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" android:hint="@string/username" /> <TextView android:id="@+id/textname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/background_dark"/> </LinearLayout> <!-- 焦点改变事件 结束 --> <!-- 触摸事件 开始 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/img1Info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/background_dark" android:textSize="20sp"/> <ImageView android:id="@+id/img1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/hello_world" android:src="@drawable/aa"/> </LinearLayout> <!-- 触摸事件 结束 --></LinearLayout>
MainActivity.java
import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.view.MotionEvent;import android.view.View;import android.view.View.OnFocusChangeListener;import android.view.View.OnKeyListener;import android.view.View.OnLongClickListener;import android.view.View.OnTouchListener;import android.view.Window;import android.widget.EditText;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity{ private EditText input; private ImageView img; private EditText username; private TextView textname; private ImageView img1; private TextView img1Info; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //去除窗口标题 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); //按键事件开始 input=(EditText) findViewById(R.id.input); img=(ImageView) findViewById(R.id.img); input.setOnKeyListener(new MyonkeyListener()); //按键事件结束 //长按事件 img.setOnLongClickListener(new MyonLongListener()); //焦点改变事件开始 username=(EditText) findViewById(R.id.username); textname=(TextView) findViewById(R.id.textname); username.setOnFocusChangeListener(new MyonFocusChangeListener()); //焦点改变事件结束 //触摸事件 开始 img1=(ImageView) findViewById(R.id.img1); img1Info=(TextView) findViewById(R.id.img1Info); img1.setOnTouchListener(new MyonTouchListener()); //触摸事件 结束 } /** * 按键事件 * @author Administrator * */ private class MyonkeyListener implements OnKeyListener{ @Override public boolean onKey(View v, int keyCode, KeyEvent event) { System.out.println("keyCode:"+keyCode); switch (event.getAction()) { //键盘松开 case KeyEvent.ACTION_UP: String info=input.getText().toString(); System.out.println("info:"+info); //规定输入的样式 if (info.matches("\\w+@\\w+\\.\\w+")) { img.setImageResource(R.drawable.yes); }else { img.setImageResource(R.drawable.no); } break; //按下时 case KeyEvent.ACTION_DOWN: break; default: break; } return false; } } /** * 长按事件 */ private class MyonLongListener implements OnLongClickListener{ @Override public boolean onLongClick(View v) { Toast.makeText(MainActivity.this, "长按图片", Toast.LENGTH_SHORT).show(); return false; } } /** * 焦点改变事件 */ private class MyonFocusChangeListener implements OnFocusChangeListener{ @Override public void onFocusChange(View v, boolean hasFocus) { if (v.getId()==username.getId()) { if (hasFocus) { Toast.makeText(MainActivity.this, "获得焦点", Toast.LENGTH_SHORT).show(); }else{ if (username.getText().toString().trim().length()==0) { textname.setText("请输入用户名!"); }else{ textname.setText("您输入的用户名:"+username.getText().toString().trim()); } } } } } /** * 触摸事件 */ private class MyonTouchListener implements OnTouchListener{ @Override public boolean onTouch(View v, MotionEvent event) { //获得图片img1的坐标 img1Info.setText("x="+event.getX()+",y="+event.getY()); return false; } }}
strings.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string name="input">请输入邮箱地址</string> <string name="username">请输入用户名</string></resources>
0 0
- 按键、长按、焦点改变、触摸事件的实现
- android 中如何监听按键的长按事件
- ListView的长按键事件的处理
- Android TV中使用RecyclerView长按或者连续按键焦点飞掉的问题
- Android开发--事件的处理/按键按下,弹起,触摸事件等
- Android开发之长按事件的--改变桌…
- zigbee z-stack实现按键的长按
- 请教如何实现listview长按事件后改变点击事件
- IOS UIbutton的长按事件实现
- Android系统中自定义按键的短按、双击、长按事件
- Android系统中自定义按键的短按、双击、长按事件
- 一个按键的工具类,处理点击、双击、长按等事件
- input事件--->按键事件的基本实现
- Android按键长按与短按事件
- android重复按键与onKeyLongPress长按事件触发
- UGUI - 长按事件实现
- UGUI - 长按事件实现
- input标签内容改变或失去焦点的触发事件
- Spring Aop实例
- NGUI控件说明(中文) UILabel
- Win32控制台工程中创建窗口
- 基于hadoop的事务日志的搜索引擎的开发
- Drupal 7中的字段渲染方法
- 按键、长按、焦点改变、触摸事件的实现
- PHP中两个等号(“==”)与三个等号(“===”)的区别
- android apk使用zipalign进行简单优化
- hdu 2151 Worm
- Android拨打电话和发短信
- poj 3358 Period of an Infinite Binary Expansion(欧拉函数+快速幂取模)
- Red and Black.(POJ-1979)
- oracle exp/imp 导入导出命令及示例
- 布局文件无法被加载