Domanda

Voglio sapere c'è qualche modo per utilizzare TextView nativo o qualsiasi altra disposizione di Android Activity all'interno BaseAndEngine.

La mia applicazione utilizza AndEngine per uno di tutta la sua schermata. Questa schermata è esteso da BaseAndEngine e ho bisogno di usare un po 'di vista nativo come TextView all'interno di quella dello schermo. Perché AndEngine non funziona bene per il testo in arabo e ho bisogno di mostrare un po 'di testo arabo sullo schermo di gioco.

o, se possibile come mostrare il testo in arabo nel testo variabile in AndEngine. Come testo modificabile scrittura araba da sinistra a destra in ordine inverso.

È stato utile?

Soluzione

Certo che puoi.

Controlla questo codice out -. In pratica di ignorare onSetContentView, quindi è possibile impostare quello che vuoi

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

(Questo metodo va al tuo sottoclasse di BaseGameActivity.)

Si potrebbe anche farlo tramite XML, ma penso che questo metodo è più chiaro.

Altri suggerimenti

È possibile utilizzare AndEngine per i font arabo e persiano troppo. Ma in un modo diverso. per fare questo è necessario creare una Sprite e aggiungere un bitmap ad esso. Prima che si disegna il testo su quella bitmap.

il seguente codice è un esempio che disegnare il testo persiano / Arabi e collegarlo a una sprite. in modo che possiamo collegare lo sprite alla nostra scena. questo è un esempio per mostrare come possiamo farlo, in modo da poter regolare la bitmap e dimensioni del testo da soli. se il supporto dispositivo Persiano / arabi, questo codice funzionerà correttamente. se il testo non appare nella scena, cambia la sua posizione, è fuori dello schermo

la funzione di esempio di codice stamperà il "Golfo Persico" in Persiano / arabi.

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

Non utilizzare TextView Android ... rende il gioco brutto ....

Non puoi usarli direttamente in AndEngine, perché gli oggetti in AndEngine sono oggetti OpenGL. Ma è possibile utilizzare sistema operativo Android per disegnare una bitmap di qualsiasi visualizzazione standard, e quindi creare una trama e uno sprite da questo punto di vista. Questo è meno ottimale per un caso come testo arabo, ma funzionerà. Fate attenzione a perdite di memoria quando si creano le bitmap dei vostri punti di vista.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top