閲覧いただき、ありがとうございます。
今現在、Androidアプリの勉強をしております。
右下に配置した画像を、右下を基準点にして、ピンチイン・アウトで拡大縮小したいのですが、
うまくできません。
どうすれば実装できるか、教えていただけませんでしょうか?
よろしくお願いいたします。
lang
1public class ZoomFrameImg extends View { 2 private Bitmap mBitmap; 3 private ScaleGestureDetector mScaleDetector; 4 private float mScaleFactor = 1.0f; 5 6 public ZoomFrameImg(Context context, AttributeSet attrs){ 7 super(context, attrs); 8 9 try { 10 InputStream is = getResources().getAssets() 11 .open("img.png"); 12 mBitmap = BitmapFactory.decodeStream(is); 13 } catch (Exception e) { 14 15 } 16 mScaleDetector = new ScaleGestureDetector(context, 17 new ScaleGestureDetector.SimpleOnScaleGestureListener() { 18 @Override 19 public boolean onScale(ScaleGestureDetector detector) { 20 mScaleFactor *= detector.getScaleFactor(); 21 invalidate(); 22 return true; 23 } 24 }); 25 } 26 27 protected void onDraw(Canvas canvas) { 28 canvas.save(); 29 canvas.scale(mScaleFactor, mScaleFactor); 30 int canvasX = canvas.getWidth(); 31 int canvasY = canvas.getHeight(); 32 int bitmapX = mBitmap.getWidth(); 33 int bitmapY = mBitmap.getHeight(); 34 canvas.drawBitmap(mBitmap, canvasX-bitmapX, canvasY-bitmapY, null); 35 canvas.restore(); 36 } 37 38 @Override 39 public boolean onTouchEvent(MotionEvent ev) { 40 mScaleDetector.onTouchEvent(ev); 41 return true; 42 } 43} 44
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。