android 按钮按下缩放,android捏缩放

我TextView使用本教程为我实现了一个缩放缩放。结果代码是这样的:private GestureDetector gestureDetector;private View.OnTouchListener gestureListener;

并在onCreate()中:// Zoom handlers

gestureDetector = new GestureDetector(new MyGestureDetector());

gestureListener = new View.OnTouchListener() {

// We can be in one of these 2 states

static final int NONE = 0;

static final int ZOOM = 1;

int mode = NONE;

static final int MIN_FONT_SIZE = 10;

static final int MAX_FONT_SIZE = 50;

float oldDist = 1f;

@Override

public boolean onTouch(View v, MotionEvent event) {

TextView textView = (TextView) findViewById(R.id.text);

switch (event.getAction() & MotionEvent.ACTION_MASK) {

case MotionEvent.ACTION_POINTER_DOWN:

oldDist = spacing(event);

Log.d(TAG, "oldDist=" + oldDist);

if (oldDist > 10f) {

mode = ZOOM;

Log.d(TAG, "mode=ZOOM" );

}

break;

case MotionEvent.ACTION_POINTER_UP:

mode = NONE;

break;

case MotionEvent.ACTION_MOVE:

if (mode == ZOOM) {

float newDist = spacing(event);

// If you want to tweak font scaling, this is the place to go.

if (newDist > 10f) {

float scale = newDist / oldDist;

if (scale > 1) {

scale = 1.1f;

} else if (scale 

scale = 0.95f;

}

float currentSize = textView.getTextSize() * scale;

if ((currentSize  MIN_FONT_SIZE)

||(currentSize >= MAX_FONT_SIZE && scale 

|| (currentSize <= MIN_FONT_SIZE && scale > 1)) {

textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, currentSize);

}

}

}

break;

}

return false;

}

魔术常数1.1和0.95是根据经验选择的(scale为此目的使用变量使我的TextView行为有点奇怪)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值