画布上的动画时没有获得完整的文字:Android,

时间:2010-11-16 08:52:11

标签: android animation canvas

我想在Android中获取一个动画文本,它应该在屏幕上从左到右运行。 例如。 我想得到这个文本 private static final String QUOTE =             “没有人再使用Java了。这是一个重量级的重量级球和链条。”;

使用动画从右向左运行。

然而,这个文本被截断为“Nobody再使用Java。它是在Portrait模式下” “在景观模式中,没有人再使用Java了。这是重量级人物。”

这是我使用的代码

        Paint paint = new Paint();
        paint.setColor(Color.BLUE);
        private static final String QUOTE =
        "Nobody uses Java anymore. It's this big heavyweight ball and chain."; 
        paint.setTextSize(20);
        paint.setAntiAlias(true);
        int len= QUOTE.length();
        canvas.scale(1,-1);
        canvas.drawText(QUOTE, 0, len-1, 100, 60, paint);
        canvas.drawText(QUOTE,0,100 , paint);
        createAnim(canvas);


            private void createAnim(Canvas canvas) {

        anim2= new TranslateAnimation(500,-500,30,30);
        anim2.setRepeatCount(Animation.INFINITE);
        anim2.setInterpolator(new AccelerateDecelerateInterpolator());
        anim2.setRepeatMode(Animation.RESTART);
        anim2.setDuration(1000L);
        startAnimation(anim2);

             }

2 个答案:

答案 0 :(得分:0)

How to do Text Animations using Android SDK?

请参阅此帖子以获取文字动画。

答案 1 :(得分:0)

请检查画布的高度和宽度,

// Custom Font Text
            Bitmap bitmap = Bitmap.createBitmap((int) getWindowManager()
                    .getDefaultDisplay().getWidth(),
                    (int) getWindowManager().getDefaultDisplay()
                            .getHeight() / 2, Bitmap.Config.ARGB_8888);
            canvas = new Canvas(bitmap);
            drawingImageView.setImageBitmap(bitmap);
            paint = new Paint();
            paint.setColor(Color.BLACK);
            paint.setTextSize(150);
            Typeface chops = Typeface.createFromAsset(this.getAssets(),
                    "WC_Speed_Bold_Bta.ttf");
            paint.setTypeface(chops);
            int xPos = (canvas.getWidth() / 2);
            int yPos = (int) ((canvas.getHeight() / 2) - ((paint.descent() + paint
                    .ascent()) / 2));
            canvas.drawText("Hello", xPos, yPos, paint);