0
我創建一個自定義View
裏面文本:觸摸效果 - Android電子
canvas.drawText(text,
bounds.centerX(),
_getTextVerticalCenterPosition(bounds, paint),
paint);
_getTextVerticalCenterPosition
剛剛返回y位置。
現在聯繫(onTouchEvent
)我想爲用戶設置任何效果,以便在視覺上感覺到觸摸,但不知道從哪裏開始。 MotionEvent.ACTION_DOWN
應該啓動效果,MotionEvent.ACTION_UP
應該結束它並將文本返回到其初始外觀。那麼在屏幕上「滑動」手指呢?如果文本的初始外觀將在手指離開邊界後立即返回,但不是在MotionEvent.ACTION_UP
之後返回。
@Override
public boolean onTouchEvent(MotionEvent event)
{
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
if (bounds.contains(x, y)) {
// Text pressed
}
}
}
return true;
}
或者是有可能使用的基本看法,如Button
,在我的自定義一個與圓弧和路徑結合起來呢?
解決方案:
@Override
public boolean onTouchEvent(MotionEvent event)
{
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
if (bounds.contains(x, y)) {
// Text pressed
_setTextColor(mOnTouchColor);
invalidate();
}
break;
}
case MotionEvent.ACTION_MOVE: {
_setTextColor(mColor);
invalidate();
break;
}
case MotionEvent.ACTION_MOVE: {
// Finger off the bounds
if (!bounds.contains(x, y)) {
_setTextColor(mColor);
invalidate();
}
break;
}
}
return true;
}
謝謝,我用移動的手指添加了我的解決方案。 –