通过Thread更新自定义视图中的文本:Android

时间:2013-10-17 19:17:57

标签: android multithreading

我想要弹出&在Custome View中对文本的回溯效果。我试图通过线程更新Cutome视图中的文本大小,更新文本大小和PostInvalidate();。但它在Custome View中没有显示任何效果。

客户视图OnDraw方法:

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    canvas.drawText(carMessage, getPercentOfWidth(40),getPercentOfHeight(20),fontPaint);
    canvas.drawBitmap(carSpriteImage, carspritePosition.x , carspritePosition.y, null);
}

字体更新程序线程类代码:

@Override
public void run() {
    super.run();    

    while(true){

        paint.setTextSize(minSize);
        Log.i("Font Thread!", "Min Font Size="+minSize);
        customeView.setCarMessage("Click Me");
        customeView.setFontPaint(paint);
        customeView.postInvalidate();

        try {
             Thread.sleep(700);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        paint.setTextSize(maxSize);
        customeView.setCarMessage("To Stop");
        customeView.setFontPaint(paint);
        Log.i("Font Thread!", "Max Font Size="+maxSize);
        customeView.postInvalidate();
    }
}

1 个答案:

答案 0 :(得分:0)

我在我的项目https://github.com/donvigo/CustomProgressControls中做到了这一点。 查看changePercentage类中的方法CircleRoadProgress