Витрина Посмотреть текст gravity

Есть ли способ установить положение заголовка и сообщения в представлении витрины? Я вижу, что библиотека использует функцию, чтобы найти лучшую позицию, но я хочу ее переопределить.

Я только что ShowcaseView исходный код ShowcaseView и кажется, что нет способа построить текстовую позицию. Поэтому я добавил свою собственную модификацию в библиотеку. Вот изменения, которые я сделал:

В классе ShowcaseView добавлены следующие поля:

 private boolean hasManualPostion = false; private int xPosition, yPosition, width; 

Затем в классе Builder который является внутренним классом в классе ShowcaseView , добавьте следующие методы:

  public Builder hasManualPosition(boolean hasManualPosition) { showcaseView.hasManualPostion = hasManualPosition; return this; } public Builder xPostion(int xPostion) { showcaseView.xPosition = xPostion; return this; } public Builder yPostion(int yPostion) { showcaseView.yPosition = yPostion; return this; } 

После этого добавьте этот метод в класс TextDrawer :

 public void setTestPostionManually(int xPosition, int yPosition) { mBestTextPosition[0] = xPosition; mBestTextPosition[1] = yPosition; } 

И в конце измените метод onPreDraw в ShowcaseView чтобы он выглядел следующим образом:

  @Override public boolean onPreDraw() { boolean recalculatedCling = showcaseAreaCalculator.calculateShowcaseRect(showcaseX, showcaseY, showcaseDrawer); boolean recalculateText = recalculatedCling || hasAlteredText; if (recalculateText) { textDrawer.calculateTextPosition(getMeasuredWidth(), getMeasuredHeight(), this, shouldCentreText); if (hasManualPostion) { textDrawer.setTestPostionManually(xPosition, yPosition); } } hasAlteredText = false; return true; } 

Теперь вы должны создать ShowcaseView следующим образом:

 sv = new ShowcaseView.Builder(this, true) .setTarget(target) .setContentTitle(R.string.showcase_main_title) .setContentText(R.string.showcase_main_message) .setStyle(R.style.CustomShowcaseTheme2) .setShowcaseEventListener(this) .hasManualPosition(true) .xPostion(0) .yPostion(240) .build(); 

Наслаждайтесь!

Intereting Posts
Регистрация лучших практик и идей Проблемы с Android ProGuard с Parse 1.3.5 jar Переключатель отображает множество чертежей для большого пальца и дорожки определенного размера Навигационное устройство Android (GPS) Java.io.IOException: сбой записи: EPIPE (Broken pipe) Активность одиночного андроида не одинока, если нажата кнопка «Назад» Глобальный неперехваченный обработчик исключений -> журнал электронной почты для меня? Передача указателя с C на Java становится NULL Навигация до активности, которая ожидает дополнительных функций Как использовать Android DialogFragment setStyle () Есть ли способ открыть файл как объект File из папки ресурсов Android? Как определить наивысшее разрешение видео и / или битрейт, которое может воспроизводить устройство (Android)? Android WebView: ручка клавиш со стрелками в JavaScript Ошибка PhoneTapansfer.upload () метаданных Phonegap () для Android 3 на Android Невозможно использовать записную книжку Eclipse в проекте Android