2013-05-26 1 views

ответ

2

Использовать пользовательский класс макет -

public CrosswordGridLayout(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 
    } 

    public CrosswordGridLayout(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     // TODO Auto-generated constructor stub 
    } 

    public CrosswordGridLayout(Context context, AttributeSet attrs, 
      int defStyle) { 
     super(context, attrs, defStyle); 
     // TODO Auto-generated constructor stub 
    } 

    protected void dispatchDraw(Canvas canvas) { 
     canvas.save(Canvas.MATRIX_SAVE_FLAG); 
     canvas.scale(mScaleFactor, mScaleFactor, mPivotX, mPivotY); 
     super.dispatchDraw(canvas); 
     canvas.restore(); 
    } 

    public void scale(float scaleFactor, float pivotX, float pivotY) { 
     mScaleFactor = scaleFactor; 
     mPivotX = pivotX; 
     mPivotY = pivotY; 
     this.invalidate(); 
    } 

    public void restore() { 
     mScaleFactor = 1; 
     this.invalidate(); 
    } 

} 

сделать жест - у слушателя

private class OnPinchListener extends SimpleOnScaleGestureListener { 

    float startingSpan; 
    float endSpan; 
    float startFocusX; 
    float startFocusY; 


    public boolean onScaleBegin(ScaleGestureDetector detector) { 
     startingSpan = detector.getCurrentSpan(); 
     startFocusX = detector.getFocusX(); 
     startFocusY = detector.getFocusY(); 
     return true; 
    } 


    public boolean onScale(ScaleGestureDetector detector) { 
     crosswordGridLayout.scale(detector.getCurrentSpan()/startingSpan, startFocusX, startFocusY); 
     return true; 
    } 

    public void onScaleEnd(ScaleGestureDetector detector) { 
     crosswordGridLayout.restore(); 
    } 
} 

Используйте это на ваш взгляд, для функции щепотку масштабирования.

+0

Я не могу понять, пожалуйста, скажите мне более легко .. – KRJ

+0

«CrosswordGridLayout» - это класс, который расширяет 'RelativeLayout'. Используйте свой новый макет, например' . Примените 'OnPinchListener' в представлении. – mjosh

 Смежные вопросы

  • Нет связанных вопросов^_^