Jak oživit textu nad jiným View v Androidu?

hlasů
3

Snažím se oživit nějaký text ‚Oddálení‘ v horní části jiného pohledu. Můj kód vypadá nějak takto:

class BoardView extends View {

private TextView animText;

...

private void animText(String text, int color, int xBlocks, int yBlocks) {
    animText.setText(text);
    animText.setTextColor(color);
    animText.setVisibility(View.VISIBLE);
    final int x = BOARD_X_OFFSET + xBlocks * xBlockSize;
    final int y = BOARD_Y_OFFSET + yBlocks * yBlockSize;
    final float SCALE_FROM = (float) 0.25;
    final float SCALE_TO = (float) 5.0;
    ScaleAnimation anim = new ScaleAnimation(SCALE_FROM, SCALE_TO, SCALE_FROM, SCALE_TO, x, y);
    anim.setDuration(500);
    animText.setAnimation(anim);
    this.setAnimation(null);
    startAnimation(anim);
}

}

s animText bude použito v onDraw()rutiny BoardView. To, co vidím, je však deska oddalování, nikoli text, bez ohledu na výše uvedené volání setAnimation().

Díval jsem se v hlavním android dokumenty a na jednom jiný příklad . Dokonce ukazatele správným směrem by byla užitečná.

Položena 20/04/2009 v 18:40
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
4

No, jsem rád, že nejsem jediný, kdo měl těžký čas najít velmi subtilní chyba v seznamu. Chyba je:

startAnimation(anim);

což není příliš zřejmé, dokud jej rozšířit na:

this.startAnimation(anim);

na kterém místě to je jasné, proč je vnější pohled (tj. ‚to‘) je oživovat, stejně jako text.

Odpovězeno 24/04/2009 v 05:01
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more