CardBuilder显示更多文字

时间:2014-10-25 18:22:55

标签: google-glass google-gdk

现在可以使用GDK安排显示更多按钮吗?我有很大一部分文字,我想分开几张卡片。

谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

Google Glass存在的问题是,您无法按照自己的想法“按钮”。您无法点按屏幕的某个部分。您只能向下,向上,向左,向右和向下滑动。

你可以做的是,听取那些可能的手势,然后采取相应的行动 - 也许创建一个TextBox,可以在滑动上滚动和滚动它。或者,当您点按时,可能会转到下一张卡片/更新卡片中的文字。以下是检测这些操作的方法:

您需要创建一个GestureDetector。以下是我在项目中的表现:

public class EXAMPLE {
    private GestureDetector gestureDetector;
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        gestureDetector = createGestureDetector(this);

    }
    private GestureDetector createGestureDetector(Context context) {
        GestureDetector gestureDetectorTemp = new GestureDetector(context, new GestureDetector.OnGestureListener() {
            @Override
            public boolean onDown(MotionEvent motionEvent) {
                return false;
            }

            @Override
            public void onShowPress(MotionEvent motionEvent) {
               return false;
            }

            @Override
            public boolean onSingleTapUp(MotionEvent motionEvent) {
               return false;
            }
            @Override
            public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent2, float distanceX, float distanceY) {
                return false;
            }
            @Override
            public void onLongPress(MotionEvent motionEvent) {
            }
            @Override
            public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) { 
             return false;
            }
        });
        return gestureDetectorTemp;
    }

    @Override
    public boolean onGenericMotionEvent(MotionEvent event) {
        if (gestureDetector != null) {
            return gestureDetector.onTouchEvent(event);
        }
        return false;
    }
}

最后一部分非常重要。在任何通用动作事件中,如果gestureDetector不为空,您将通过gestureDetector发送事件进行处理。

请注意,您需要了解return false;return true;内容的含义。如果返回false,则表示事件未被消耗。如果返回true,则会消耗该事件。换句话说,如果你返回true,那么其他任何东西都不会被激活,因为事件会被“吃掉”,但如果你返回false,这会将事件发送给其他函数,这些函数可能会在执行操作时执行某些操作。

现在就拿这个,然后改变onSingleTapUp()方法的内容来做你想要的......像

card.setText(nextSetOfText);

textView.setText(nextSetOfText);

您可以将长文本拆分为一个字符串数组,其最大长度可以放在字符串上,然后在人员点击时循环到数组中的下一个字符串。