2012-04-15 4 views
1

Я хочу взять маленькое изображение календаря и написать дату и месяц на нем. Это будет отображаться много раз в виде списка, поэтому я ищу оптимальный способ сделать это.Лучший способ написать текст на изображении?

Ниже работает отлично, есть лучший способ:

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

ответ

2

Почему вы не просто взять ImageView и поставить TextView на нем в качестве наложения для заголовка, внутри макета контейнера, который позволяет это - например RelativeLayout или FrameLayout?

У меня было несколько проектов, в которых я писал названия на изображениях таким образом, с этим подходом не было никаких проблем.

+0

С помощью метода наложения вы должны получить плотность отображения и масштабировать все ваши вычисления соответственно? С помощью вышеуказанного метода система андроидов автоматически изменяет изображение. – pcm2a

+0

Вы имеете в виду, если физический размер текста в виджетах TextView остается неизменным на устройствах с различной плотностью экрана? Если да, то да, TextView позаботится об этом, вы можете определить textSize в dip. –

+0

Это и расположение текста на изображении. Например, изображение 100px x 100px может быть 70px или 150px в зависимости от плотности экрана. Я хочу поместить мой текст X, Y пикселей, и он будет идеально выровнен по всем разрешениям. – pcm2a

Смежные вопросы