如何使用Spannable String和引擎文本?

时间:2014-01-22 06:09:45

标签: android andengine

我正在使用和引擎进行游戏,现在已经使用HUD来显示分数,剩余时间和等级我的问题是我想使用两种不同颜色的文本,如Level 1/10 所以Level / 10应该是黑色的,1应该是红色的,有没有办法做到这一点,我在下面使用

vertexBufferObjectManager = this.getVertexBufferObjectManager();
        back = new Sprite((CAMERA_WIDTH - mBannerTextureRegion.getWidth()) / 2,
                0, this.mBannerTextureRegion, vertexBufferObjectManager);

        topBannar = new HUD();

        reset = new ButtonSprite(30, 5, this.mResetTextureRegion,
                this.mResetPressedTextureRegion, this.mResetTextureRegion,
                vertexBufferObjectManager, this);

        topBannar.registerTouchArea(reset);

        back.attachChild(reset);

        levelText = new Text(210, 5, this.mFont, "Level " + stage + "/10",
                new TextOptions(HorizontalAlign.CENTER),
                vertexBufferObjectManager);

        back.attachChild(levelText);
        scoreText = new Text(375, 5, this.mFont, "Score : " + totalScore,
                new TextOptions(HorizontalAlign.CENTER),
                vertexBufferObjectManager);
        back.attachChild(scoreText);
        timerWatch = new Text(535, 5, this.mFont, "Time:", 100,
                new TextOptions(HorizontalAlign.CENTER),
                vertexBufferObjectManager);

        timeHandler = new Timer(1f, StartActivity.this);

        timerWatch.registerUpdateHandler(timeHandler);

        back.attachChild(timerWatch);

        topBannar.attachChild(back);
        camera.setHUD(topBannar);

2 个答案:

答案 0 :(得分:0)

我不知道andengine但是如果你的问题是关于spannable这里有一个小例子。

Spannable spannableString = new SpannableString("some string");

//the following code will put the word "string" in bold with yellow background
spannableString.setSpan(new BackgroundColorSpan(Color.YELLOW),
               6, spannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableString.setSpan(new StyleSpan(android.graphics.Typeface.BOLD),
               6, spannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

基本上它会创建一个spannable字符串,然后使用setSpan()设置一些自定义属性。

我不确定这是否会回答你是否应该删除它的问题,因为它不在主题

答案 1 :(得分:0)

嗨,经过大量搜索,我发现只有这样做的方法“在另一个之前使用两个文本对象并设置你想要的颜色。