2012-04-28 5 views
0

ok Я знаю, что могу установить цвет фона textview на textview.setBackgroundColor(R.color.darkgrey) или какой-либо другой цвет, но im в немного другой ситуации. У меня есть объект с тремя свойствами: имя, значение и краска. Я использовал этот объект для рисования кругового графика и сделал кучу textview в качестве легенд для графика. Все, что я хочу сделать, это установить цвет фона для Paint, который используется для графика. Я установил Paint, используя метод setARGB android.graphics.Paint. Я просмотрел андроидные ноты, пытаясь найти метод преобразования, чтобы изменить Paint на цвет, но не повезло.Как установитьBackgroundColor textview в Paint вместо цвета?

Любые идеи, как setBackgroundColor() для текстового просмотра с использованием Paint?

+0

Почему бы просто не удержать значение ARGB в вашем объекте вместе с именем, значением и 'Paint'? – CommonsWare

+0

Да, значение ARGB для краски удерживается объектом, но его просто im получает ошибку «метод setBackgroundColor (int) в представлении типа не применим для аргумента (Paint)», когда я пытаюсь установить фон textview для этой краски – ariken929

+0

Значение ARGB является целым числом. Сделайте свой объект удержанием имени, значения, 'Paint' и целого числа. Поместите значение ARGB в целое число. Используйте целое число с 'setBackgroundColor()'. – CommonsWare

ответ

0

Если вы хотите нарисовать текст с холстом, вы должны сделать что-то вроде этого:

public Bitmap myDrawText(Context context, String text, Typeface typeface, int textSize, int width, int height) { 
    Bitmap myBitmap = Bitmap.createBitmap(width, height,  Bitmap.Config.ARGB_8888); 
    Canvas myCanvas = new Canvas(myBitmap); 
    Paint paint = new Paint(); 
    paint.setAntiAlias(true); 
    paint.setSubpixelText(true); 
    paint.setTypeface(typeface); 
    paint.setStyle(Paint.Style.FILL); 
    paint.setColor(Color.WHITE); 
    paint.setTextSize(textSize); 
    paint.setTextAlign(Align.CENTER); 
    myCanvas.drawText(text, (width/2), 40, paint); 
    return myBitmap; 
} 

Теперь у вас есть растровое изображение текста!

ImageView iv = findViewById(R.id.some_image); 
    iv.setImageBitmap(myBitmap); 
+0

Привет, спасибо за ответ, im not actaully рисует текст, im нарисовал график, а текст - просто нормальное текстовое изображение в списке. Я добавил картинку, чтобы показать – ariken929

+0

Вместо текстового представления используйте просмотр изображения и с помощью этой функции нарисуйте этот текст. –

+0

ОК. но есть ли более простой способ конвертировать Paint в цвет? потому что, если мне нужно использовать представление изображения, мне придется изменить настраиваемый массив, который был создан для списка. – ariken929

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