سؤال

أحاول تحريك بعض النصوص "التكبير" أعلى طريقة عرض أخرى. شفوي يبدو شيئا مثل:

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

}

مع animText يجري الاحتجاج في onDraw() روتين BoardView. وبعد ما أراه، ومع ذلك، هو مجلس التكبير، وليس النص، على الرغم من المكالمات أعلاه setAnimation().

لقد بحثت في مستندات الروبوت الرئيسية وفي أحدهما مثال. وبعد حتى المؤشرات في الاتجاه الصحيح سيكون مفيدا.

هل كانت مفيدة؟

المحلول

حسنا، أنا سعيد لأنني لست الشخص الوحيد الذي كان لديه صعوبة في العثور على الخطأ الدقيق للغاية في ما سبق. الخطأ هو:

startAnimation(anim);

التي ليست واضحة جدا حتى توسعها في:

this.startAnimation(anim);

عند هذه النقطة، من الواضح لماذا الرأي الخارجي (أي "هذا") هو التحريك وكذلك النص.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top