ガイドと例を見ても、これを実行する方法について明確な手がかりが得られませんでした。
特定の範囲内でサイズを増減できるようにButton
、カスタム背景 (円形) でこのようなジェスチャを有効にしようとしています。Drawable
私はこれを試していますが、先に進む前に、これが正しい方法であるかどうか、およびこれを達成するためのより効果的な代替方法があるかどうかを知りたい.
private ScaleGestureDetector mScaleDetector = new ScaleGestureDetector(v.getContext(), new ScaleListener());
private float mScaleFactor=1.f;
private Button MyButtonView;
MyButtonView.setOnTouchListener(this);
isBtn=false;
//...
public boolean onTouch(View v, MotionEvent event) {
if(!isBtn) mScaleDetector.onTouchEvent(event);
}
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
mScaleFactor *= detector.getScaleFactor();
// Don't let the object get too small or too large.
mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 5.0f));
//TODO set width = getWidth()*mScaleFactor;
//TODO set height = getHeight()*mScaleFactor;
MyClass.this.MyButtonView.invalidate();
return true;
}
}