2012-04-15 9 views
1

Ich möchte ein kleines Kalenderbild machen und Datum und Monat darauf schreiben. Dies wird oft in einer Listenansicht angezeigt, daher suche ich nach dem optimalen Weg.Die beste Art, Text in ein Bild zu schreiben?

arbeitet Below groß, gibt es eine bessere Art und Weise:

ImageView image = (ImageView) findViewById(R.id.imageView2); 
try { 
    // Load the png image into a bitmap 
    Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.calendar_empty); 
    // Have to copy the bitmap so it is mutable 
    mBitmap = mBitmap.copy(Bitmap.Config.ARGB_8888, true); 
    // Create a canvas from the bitmap to draw on 
    Canvas canvas = new Canvas(mBitmap); 
    Paint paint = new Paint(); 
    paint.setColor(Color.BLACK); 
    paint.setTextSize(12); 
    paint.setAntiAlias(true); 
    canvas.drawText("Sept", 11, 26, paint); 
    paint.setTextSize(18); 
    canvas.drawText("29", 14, 42, paint); 
    // Display the results on the screen 
    image.setImageDrawable(new BitmapDrawable(this.getResources(), mBitmap)); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

Antwort

2

Warum Sie nicht nur das Image nehmen, und eine Textview legen es als Overlay für den Titel, in einem Layout-Containern, ermöglicht dies - z RelativeLayout oder FrameLayout?

Ich hatte mehrere Projekte, in denen ich Titel auf Bildern auf diese Weise schrieb, gab es keine Probleme mit diesem Ansatz.

+0

Mit der Overlay-Methode müssen Sie die Dichte des Displays erhalten und alle Ihre Berechnungen entsprechend skalieren? Mit der obigen Methode wird das Bild automatisch vom Android-System bestimmt. – pcm2a

+0

Meinst du, wenn die Textgröße im TextView-Widget auf Geräten mit unterschiedlichen Bildschirmdichten gleich bleibt? Wenn ja, dann kümmert sich TextView darum, Sie können die textSize in dip definieren. –

+0

Das und der Ort des Textes in der Bildansicht. Zum Beispiel kann ein 100px x 100px Bild 70px oder 150px abhängig von der Dichte des Bildschirms sein. Ich möchte meinen Text X, Y Pixel über und es perfekt über alle Auflösungen ausgerichtet sein. – pcm2a

Verwandte Themen