android 按钮按下缩放,android捏缩放
我TextView使用本教程為我實現(xiàn)了一個縮放縮放。結(jié)果代碼是這樣的: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;
}
魔術(shù)常數(shù)1.1和0.95是根據(jù)經(jīng)驗選擇的(scale為此目的使用變量使我的TextView行為有點奇怪)。
總結(jié)
以上是生活随笔為你收集整理的android 按钮按下缩放,android捏缩放的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 热搜第一!玲娜贝儿的复工第一天 上海迪士
- 下一篇: iPhone开售15周年:34款机型 你