سؤال

مرحبًا بالجميع: أنا أكتب فصلًا يرث من TextView ، وتجاوزه onDraw() الطريقة ، ولكن في الطريقة ، استدعاء بلدي canvas.drawText() لا يبدو أنه يعمل ، الرمز كما هو الحال أدناه:

protected void onDraw(Canvas canvas) {
    // super.onDraw(canvas);
    Paint paint = new Paint();
    paint.setColor(android.graphics.Color.WHITE);
    paint.setTextSize(20);

    String text = "hello";
    canvas.drawText(text, 0, 0, paint);
}
هل كانت مفيدة؟

المحلول

إنه لا يرسم أي شيء لأن إحداثيات النص هي أسفل اليسار. نظرًا لأنك تحاول الرسم على 0،0 ، فسوف ترسم فوق الشاشة.

حاول تغيير السطر الأخير إلى:

canvas.drawText(text, 0, 20, paint);

نصائح أخرى

اقتراحات ممتازة في كل مكان ، عمل رائع يا رفاق حقا. في المرة القادمة على الرغم من أنه سيكون من الرائع أن تسأل الرجل في تعليق أو شيء ما إذا كان قد جرب ما هو واضح تمامًا قبل نشره كإجابة. هل تعتقد حقًا أن الثاني الذي وصل إليه إلى نقطة لم يكن يعمل ، فقد جاء للتو مباشرة إلى Stack Overflow دون تجريب؟

لديّ اقتراح بديل ، بأنه بجنون يعتمد على السؤال بأكمله وليس فقط الجزء الذي يمكن الإجابة عليه دون الكثير من المعرفة الفعلية.

أود أن أوصي بتجربة استدعاء النص الخاص بك على قماش ليس في فئة فرعية من TextView ، بهذه الطريقة لن يتم تجاوزها بواسطة عدة مئات من الخطوط من التعليمات البرمجية في TextView التي تدير حالة الرسم.

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