2011-11-23 12 views
5

kullanarak arka plan rengi ile metin nasıl çizileceğiniBen bitmap üzerinde benim metin çiziyorum bazı kodlar (tuval) sahip tuval

canvas.drawTextOnPath(Text, textPath[count], gipa, -10, text); 

, bu yoldaki bu metni çizmek mümkündür (textPath) söyle arka plan rengiyle?

o benim tuval üzerine metni çiziyorum Bu işlevi kullanarak, metni yalnızca

public void drawText(float x,float y ,String Text,Canvas canvas,Paint paint1 ,int count) 
     { 
      float xren =text.measureText(Text.trim()); 

      canvas.drawTextOnPath(Text, textPath[count], gipa, -10, text); 

     } 

çizmek için tam fonksiyon. Peki bu metni arka plan ile çizmek için bu işlevi nasıl değiştirebilirim?

+0

Sen ortalama testin bir rengi olmalı mı yoksa tuvalin rengi olmalı mı? –

+0

mmmm kanvasında bitmap (resim) var, bu resim üzerinde drawTextOnPath kullanarak çizim çizimi metin (çizim için bu yeteneğe ihtiyacım var) .. bu metni (örneğin yeşil metin rengi) arka planla sadece bu metin için çizmek istiyorum (örnek: siyah) – Peter

+0

İstediğiniz arka plan rengini içeren bir çizgi ile yolu çizip üzerine yazı yazamaz mısınız? Bu, yolun biraz bitmesini gerektirebilir. –

cevap

18

Büyük ihtimalle iki adım gereklidir. Önce arka plan için renk ile bir yol boyunca bir çizgi çizin ve sonra metni gösterildiği gibi çizin. Çizginin kalınlığını bir boya nesnesi ile ayarlayın. Ayrıca, boya stilini değiştirerek etkisi yardımcı olabilir. Farklı efektler için FILL, STROKE veya FILL_AND_STROKE'u deneyin.

mpaint.setStyle(Paint.Style.STROKE); 
mpaint.setStrokeWidth(strokeWidth); 
kırmızı renk ile bir yol (dikdörtgen) çizmek için

Eklendi örnek:

  Paint mPaint = new Paint(); 
     mPaint.setColor(Color.RED); 
     Path mPath = new Path(); 
     RectF mRectF = new RectF(20, 20, 240, 240); 
     mPath.addRect(mRectF, Path.Direction.CCW); 
     mPaint.setStrokeWidth(20); 
     mPaint.setStyle(Paint.Style.STROKE); 
     canvas.drawPath(mPath, mPaint); 

Sonra aynı yol boyunca metin (mavi renk) çizmek:

 mPaint.setColor(Color.BLUE); 
     mPaint.setStrokeWidth(0); 
     mPaint.setStyle(Paint.Style.FILL); 
     mPaint.setTextSize(20); 
     canvas.drawTextOnPath("Draw the text, with origin at (x,y), using the specified paint, along the specified path.", mPath, 0, 5, mPaint); 

results

İlgili konular