Как использовать нативный Textview (View) в Andengine Game Activity - PullRequest
5 голосов
/ 01 декабря 2011

Я хочу знать, есть ли способ использовать встроенный TextView или любой другой макет андроида внутри BaseAndEngine Activity.

Мое приложение использует Andengine для всего своего экрана.Этот экран расширен от BaseAndEngine, и мне нужно использовать какое-то собственное представление, такое как textview внутри этого экрана.Потому что Andengine не работает хорошо для арабского текста, и мне нужно показать какой-нибудь арабский текст на игровом экране.

ИЛИ, если возможно, как показать арабский текст в изменяемом тексте в Andengine.В качестве изменяемого текста напишите арабский слева направо в обратном порядке.

Ответы [ 3 ]

4 голосов
/ 01 декабря 2011

Конечно можно.

Проверьте этот код - в основном вы переопределяете onSetContentView, тогда вы можете установить все, что захотите.

@Override
protected void onSetContentView() {
    final FrameLayout frameLayout = new FrameLayout(this);
    final FrameLayout.LayoutParams frameLayoutLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.FILL_PARENT);

    this.mRenderSurfaceView = new RenderSurfaceView(this);
    mRenderSurfaceView.setRenderer(mEngine);
    final FrameLayout.LayoutParams surfaceViewLayoutParams = new FrameLayout.LayoutParams(super.createSurfaceViewLayoutParams());
    frameLayout.addView(this.mRenderSurfaceView, surfaceViewLayoutParams);

    //Create any other views you want here, and add them to the frameLayout.

    this.setContentView(frameLayout, frameLayoutLayoutParams);
}

(Этот метод относится к вашему подклассу BaseGameActivity.)

Вы также можете сделать это через xml, но я думаю, что этот метод более понятен.

3 голосов
/ 04 января 2014

Вы также можете использовать Andengine для арабских и персидских шрифтов.Но по-другому.Для этого вам нужно создать Sprite и добавить к нему растровое изображение.перед этим вы рисуете свой текст на этом растровом изображении.

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

, функция примера кода выведет «персидский гольф» на персидском / арабском.не используйте Android textview ... это делает вашу игру уродливой ....

0 голосов
/ 03 декабря 2011

Вы не можете использовать их непосредственно в AndEngine, потому что объекты в Andengine являются объектами OpenGL. Но вы можете использовать ОС Android для рисования растрового изображения любого стандартного представления, а затем создать текстуру и спрайт из этого представления. Это менее чем оптимально для случая, такого как арабский текст, но это будет работать. Будьте осторожны с утечками памяти при создании растровых изображений ваших представлений.

...