Touch Screen

今天试了一天,在BookDetail实现public boolean onMotionEvent(MotionEvent event)
一直都没有效果!
晚上才发现,原来要实现触摸方式。必须在自己的view里面实现


贴上一个例子做为参考:

  1. /*
  2. *Copyright(C)2007GoogleInc.
  3. *
  4. *LicensedundertheApacheLicense,Version2.0(the"License");
  5. *youmaynotusethisfileexceptincompliancewiththeLicense.
  6. *YoumayobtainacopyoftheLicenseat
  7. *
  8. *http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. *Unlessrequiredbyapplicablelaworagreedtoinwriting,software
  11. *distributedundertheLicenseisdistributedonan"ASIS"BASIS,
  12. *WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
  13. *SeetheLicenseforthespecificlanguagegoverningpermissionsand
  14. *limitationsundertheLicense.
  15. */
  16. packagecom.google.android.samples.graphics;
  17. importandroid.app.Activity;
  18. importandroid.content.Context;
  19. importandroid.graphics.Bitmap;
  20. importandroid.graphics.Canvas;
  21. importandroid.graphics.Paint;
  22. importandroid.graphics.Rect;
  23. importandroid.os.Bundle;
  24. importandroid.view.MotionEvent;
  25. importandroid.view.View;
  26. //Needthefollowingimporttogetaccesstotheappresources,sincethis
  27. //classisinasub-package.
  28. /**
  29. *Demonstratesthehandlingoftouchscreeneventstoimplementasimple
  30. *paintingapp.
  31. */
  32. publicclassTouchPaintextendsActivity{
  33. @Override
  34. protectedvoidonCreate(Bundleicicle){
  35. super.onCreate(icicle);
  36. setContentView(newMyView(this));
  37. }
  38. publicclassMyViewextendsView{
  39. BitmapmBitmap;
  40. CanvasmCanvas;
  41. privatefinalRectmRect=newRect();
  42. privatefinalPaintmPaint;
  43. privatebooleanmCurDown;
  44. privateintmCurX;
  45. privateintmCurY;
  46. privatefloatmCurPressure;
  47. privatefloatmCurSize;
  48. privateintmCurWidth;
  49. publicMyView(Contextc){
  50. super(c);
  51. mPaint=newPaint();
  52. mPaint.setAntiAlias(true);
  53. mPaint.setARGB(255,255,255,255);
  54. }
  55. @Override
  56. protectedvoidonSizeChanged(intw,inth,intoldw,intoldh){
  57. intcurW=mBitmap!=null?mBitmap.width():0;
  58. intcurH=mBitmap!=null?mBitmap.height():0;
  59. if(curW>=w&&curH>=h){
  60. return;
  61. }
  62. if(curW<w)curW=w;
  63. if(curH<h)curH=h;
  64. BitmapnewBitmap=Bitmap.createBitmap(curW,curH,false);
  65. CanvasnewCanvas=newCanvas();
  66. newCanvas.setDevice(newBitmap);
  67. if(mBitmap!=null){
  68. newCanvas.drawBitmap(mBitmap,0,0,null);
  69. }
  70. mBitmap=newBitmap;
  71. mCanvas=newCanvas;
  72. }
  73. @Override
  74. protectedvoidonDraw(Canvascanvas){
  75. if(mBitmap!=null){
  76. canvas.drawBitmap(mBitmap,0,0,null);
  77. }
  78. }
  79. @Override
  80. publicbooleanonMotionEvent(MotionEventevent){
  81. intaction=event.getAction();
  82. mCurDown=action==MotionEvent.ACTION_DOWN
  83. ||action==MotionEvent.ACTION_MOVE;
  84. mCurX=(int)event.getX();
  85. mCurY=(int)event.getY();
  86. mCurPressure=event.getPressure();
  87. mCurSize=event.getSize();
  88. mCurWidth=(int)(mCurSize*(getWidth()/3));
  89. if(mCurWidth<1)mCurWidth=1;
  90. if(mCurDown&&mBitmap!=null){
  91. intpressureLevel=(int)(mCurPressure*255);
  92. mPaint.setARGB(pressureLevel,255,255,255);
  93. mCanvas.drawCircle(mCurX,mCurY,mCurWidth,mPaint);
  94. mRect.set(mCurX-mCurWidth-2,mCurY-mCurWidth-2,
  95. mCurX+mCurWidth+2,mCurY+mCurWidth+2);
  96. invalidate(mRect);
  97. }
  98. returntrue;
  99. }
  100. }
  101. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值