2014-10-14 2 views
1

Я получаю цвет из базы данных и накладывается в TextView. Теперь я хочу отобразить TextView в форме круга, но я не получаю круг.Цветной текст Android TextView

XML-файл в вытяжке cerchio_cat.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 


<corners 
    android:bottomLeftRadius="30dp" 
    android:bottomRightRadius="30dp" 
    android:topLeftRadius="30dp" 
    android:topRightRadius="30dp" /> 

<size 
    android:height="60dp" 
    android:width="60dp" /> 
</shape> 

TextView

<TextView 
     android:id="@+id/color_view"   
     android:layout_width="45dp" 
     android:layout_height="45dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:gravity="center_horizontal|center_vertical" 
     android:background="@drawable/cerchio_cat" 
     android:textSize="28sp" /> 

tvCerchio = (TextView) row.findViewById(R.id.color_view); 
tvCerchio.setBackgroundColor(d.colore); 

ответ

0

попробовать это, он работал для меня ..

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval" > 

<solid android:color="#F45841" /> 

<stroke 
    android:width="2dp" 
    android:color="#fff" /> 

</shape> 

и TextView

android:background="@drawable/file.xml" 
+0

если установить цвет динамически, то TextView не принимает нужную форму. – user3608814

+0

u можете создавать все цвета .xml и u можно назначать на основе значения DataBase .. или проверить это, попробуйте удалить Solid из xml и попробовать tv.setBackgroundColor (Color.RED); надеюсь, что он работает –

0

Вы не можете установить фоновую вытяжку в XML, а затем установить цвет фона в коде , цвет заменит выталкиваемый.

Поскольку вы хотите назначить цвет динамически из базы данных, то лучше создать фон рисуем в коде:

ShapeDrawable background = new ShapeDrawable(); 
background.setShape(new OvalShape()); // or RoundRectShape() 
background.getPaint().setColor(d.colore); 

tvCerchio = (TextView) row.findViewById(R.id.color_view); 
tvCerchio.setBackgroundDrawable(background); 
+0

работает, но 'setBackgroundDrawable' устарел. Как я могу исправить? Большое спасибо – user3608814

+0

Используйте '' 'setBackground()' '', но помните, что этот метод работает только с уровня API 16. См. Это сообщение о том, как проверить уровень API: http://stackoverflow.com/questions/11947603/setbackground -vs-setbackgrounddrawable-андроид –

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