您的位置:首页 > 移动开发 > Android开发

Android的TextView的双击事件监听

2012-06-18 09:51 465 查看
TextView是没有双击事件的监听设置的,故我们这里使用的是setOnTouchListener来作为双击监听。监听的类需要实现OnTouchListener类,并重写OnTouch方法下面是实例:
public class HosIntroActivity extends MyActivity implements OnTouchListener {
private static long size = 12; //字体大小
private int count = 0;
private int firClick = 0;
private int secClick = 0;
private int flage = 0;
private TextView infor;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.info_introduction);
infor = (TextView) findViewById(R.id.text_infor);
try {
			infor.setText(Reader.readText(this));} catch (Exception e) {Toast.makeText(this, "读取文件失败", Toast.LENGTH_LONG).show();e.printStackTrace();}// float zoomScale = 0.5f;// 缩放比例// new ZoomTextView(infor, zoomScale);infor.setOnTouchListener(this);}
public boolean onTouch(View v, MotionEvent event) {if (MotionEvent.ACTION_DOWN == event.getAction()) {count++;if (count == 1) {firClick = (int) System.currentTimeMillis();} else if (count == 2) {secClick = (int) System.currentTimeMillis();switch (flage) {case 0:if (secClick - firClick < 1000) {// 双击事件size = size + 5;infor.setTextSize(size);flage++;}count = 0;firClick = 0;secClick = 0;return true;case 1:if (secClick - firClick < 1000) {// 双击事件size = size - 5;infor.setTextSize(size);flage--;}count = 0;firClick = 0;secClick = 0;return true;default:return true;}}}return true;}}
参考:/article/3974324.html参考中其实给出了两种方式
public class MainActivity extends Activity{ //implements OnGestureListener{private Button button;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);button = (Button)findViewById(R.id.btn_hello);button.setOnTouchListener(new onDoubleClick());}class onDoubleClick implements View.OnTouchListener{int count = 0;int firClick = 0;int secClick = 0;@Overridepublic boolean onTouch(View v, MotionEvent event) {if(MotionEvent.ACTION_DOWN == event.getAction()){count++;if(count == 1){firClick = (int) System.currentTimeMillis();} else if (count == 2){secClick = (int) System.currentTimeMillis();if(secClick - firClick < 1000){//双击事件button.setText("wff");}count = 0;firClick = 0;secClick = 0;}}return true;}}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: