现在可以使用GDK安排显示更多按钮吗?我有很大一部分文字,我想分开几张卡片。
谢谢你的帮助。
答案 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);
您可以将长文本拆分为一个字符串数组,其最大长度可以放在字符串上,然后在人员点击时循环到数组中的下一个字符串。