Question

Je veux savoir est-il possible d'utiliser TextView native ou toute autre disposition de Activity android dans de BaseAndEngine.

Mon application utilise AndEngine pour un de ses écran. Cet écran est étendu à partir BaseAndEngine et je dois utiliser une vue native comme textview dans cet écran. Parce que AndEngine ne fonctionnent très bien pour ne pas le texte arabe et je dois montrer un texte arabe sur l'écran de jeu.

OU si possible comment afficher le texte arabe dans le texte modifiable dans AndEngine. En écriture de texte variable arabe de gauche à droite dans l'ordre inverse.

Était-ce utile?

La solution

Bien sûr, vous pouvez.

Vérifier ce code sur -. En fait, vous substituez onSetContentView, vous pouvez définir ce que vous voulez

@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);
}

(Cette méthode va à votre sous-classe de BaseGameActivity.)

Vous pouvez aussi le faire par xml, mais je pense que cette méthode est plus claire.

Autres conseils

Vous pouvez utiliser AndEngine pour les polices arabes et persans aussi. Mais d'une manière différente. pour ce faire vous devez créer un Sprite et ajouter un bitmap à lui. avant que vous dessinez votre texte sur ce bitmap.

le code suivant est un exemple qui attirent le texte persan / Arabians et attacher à un sprite. afin que nous puissions fixer le sprite sur notre scène. ceci est un exemple pour montrer comment nous pouvons le faire, vous pouvez régler le bitmap et la taille du texte par vous-même. si votre support de dispositif persan / Arabians, ce code fonctionne correctement. si le texte ne figure pas dans votre scène, changer sa position, il est hors de l'écran

la fonction de code exemple imprimera le "Golf Persique" en persan / Arabians.

private void persianGolfPrinter(){
            BitmapTextureAtlas mBitmapTextureAtlas = new BitmapTextureAtlas(ResourceManager.getInstance().gameActivity.getTextureManager(), 400, 800, TextureOptions.BILINEAR);
            ITextureRegion mDecoratedBalloonTextureRegion;
            final IBitmapTextureAtlasSource baseTextureSource = new EmptyBitmapTextureAtlasSource(400, 800);
            final IBitmapTextureAtlasSource decoratedTextureAtlasSource = new BaseBitmapTextureAtlasSourceDecorator(baseTextureSource) {
                    @Override
                    protected void onDecorateBitmap(Canvas pCanvas) throws Exception {
                            this.mPaint.setColor(Color.BLACK);
                            this.mPaint.setStyle(Style.FILL);
                            this.mPaint.setTextSize(32f);
                            this.mPaint.setTextAlign(Align.CENTER);
                            pCanvas.drawText("خلیج فارس", 150, 150, this.mPaint);

                    }

                    @Override
                    public BaseBitmapTextureAtlasSourceDecorator deepCopy() {
                            throw new DeepCopyNotSupportedException();
                    }
            };

            mDecoratedBalloonTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromSource(mBitmapTextureAtlas, decoratedTextureAtlasSource, 0, 0);
            mBitmapTextureAtlas.load();

            Sprite test = new Sprite(0,0,mDecoratedBalloonTextureRegion,ResourceManager.getInstance().engine.getVertexBufferObjectManager());
            this.attachChild(test);
    }

ne pas utiliser Android textview ... il rend votre jeu laid ....

Vous ne pouvez pas les utiliser directement dans AndEngine, parce que les objets sont des objets AndEngine OpenGL. Mais vous pouvez utiliser Android OS pour dessiner un bitmap d'une vue standard, puis créer une texture et un sprite de ce point de vue. Ce chiffre est inférieur à l'optimum pour un cas tel que le texte arabe, mais il fonctionnera. Faites attention au sujet des fuites de mémoire que vous créez les bitmaps de votre point de vue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top