1、prename=codeclass=javaandroid.content.Context;android.graphics.Canvas;android.graphics.drawable.Drawable;android.view.KeyEvent;android.view.View;ZoomViewprivateDrawableimage;intzoomControler=20;Zoom(Contextcontext)super(context);image=context.getResources().getDrawable(R.drawable.icon);setFocusable(
2、true);protectedonDraw(Canvascanvas)/TODOAuto-generatedmethodstubsuper.onDraw(canvas);/hereucancontrolwidthandheightofimages.thislineveryimportantimage.setBounds(getWidth()/2)-zoomControler,(getHeight()/2)-zoomControler,(getWidth()/2)+zoomControler,(getHeight()/2)+zoomControler);image.draw(canvas);bo
3、oleanonKeyDown(intkeyCode,KeyEventevent)if(keyCode=KeyEvent.KEYCODE_DPAD_UP)/zoominzoomControler+=10;if(keyCode=KeyEvent.KEYCODE_DPAD_DOWN)outzoomControler-=10;if(zoomControler FLING_MIN_DISTANCE & Math.abs(velocityX) FLING_MIN_VELOCITY) / Fling left Toast.makeText(this, Fling Left else if (e2.getX(
4、) - e1.getX() / Fling right Fling Right / 用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发 public void onLongPress(MotionEvent e) onLongPress. / 用户按下触摸屏,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) onScroll. / 用户轻触触摸屏,尚
5、未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发 / 注意和onDown()的区别,强调的是没有松开或者拖动的状态 public void onShowPress(MotionEvent e) onShowPress. / 用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发 public boolean onSingleTapUp(MotionEvent e) onSingleTapUp. public boolean onTouch(View v, MotionEvent event) onTouch. / Set button vi
6、sible mButton01.setVisibility(View.VISIBLE); mButton02.setVisibility(View.VISIBLE); return mGestureDetector.onTouchEvent(event);/ Override/ public boolean onTouchEvent(MotionEvent event) / / TODO Auto-generated method stub/ super.onTouchEvent(event);/ / Log.i(TAG, onTouchEvent/ / Set button visible/
7、 mButton01.setVisibility(View.VISIBLE);/ mButton02.setVisibility(View.VISIBLE);/ return true;/ public boolean onKeyDown(int keyCode, KeyEvent event) super.onKeyDown(keyCode, event);onKeyDown. return true; /* 图片缩小的method */ private void small() int bmpWidth=bmp.getWidth(); int bmpHeight=bmp.getHeight
8、();bmpWidth = + bmpWidth + , bmpHeight = + bmpHeight); /* 设置图片缩小的比例 */ double scale=0.8; /* 计算出这次要缩小的比例 */ scaleWidth=(float) (scaleWidth*scale); scaleHeight=(float) (scaleHeight*scale); /* 产生reSize后的Bitmap对象 */ Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); Bitmap resizeBm
9、p = Bitmap.createBitmap(bmp,0,0,bmpWidth, bmpHeight,matrix,true); if(id=0) /* 如果是第一次按,就删除原来默认的ImageView */ layoutImage.removeView(mImageView); else /* 如果不是第一次按,就删除上次放大缩小所产生的ImageView */ layoutImage.removeView(ImageView)findViewById(id); /* 产生新的ImageView,放入reSize的Bitmap对象,再放入Layout中 */ id+; ImageView
10、 imageView = new ImageView(this); imageView.setId(id); imageView.setImageBitmap(resizeBmp); layoutImage.addView(imageView);imageView.getWidth() = + imageView.getWidth() + , imageView.getHeight() = + imageView.getHeight(); setContentView(layout1); /* 因为图片放到最大时放大按钮会disable,所以在缩小时把它重设为enable */ mButton
11、02.setEnabled(true); mButton02.setTextColor(Color.MAGENTA); /* 图片放大的method */ private void big() /* 设置图片放大的比例 */ double scale=1.25; /* 计算这次要放大的比例 */ scaleWidth=(float)(scaleWidth*scale); scaleHeight=(float)(scaleHeight*scale); /* 如果是第一次按,就删除原来设置的ImageView */ /* 如果不是第一次按,就删除上次放大缩小所产生的ImageView */ /* 如果再放大会超过屏幕大小,就把Button disable */
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1