Creación programática de fondo de vista de texto desde drawable en Android

Tengo que configurar el fondo programáticamente en TextView para Android

Tengo usando el código de abajo. no está funcionando y también me dio un error nullpointerexception.

best_deals = (TextView) findViewById(R.id.bestdeals);
 best_deals.setBackground(getResources().getDrawable(
                                       R.drawable.headerradius));

pero tengo que poner estos

best_deals.setTextColor(Color.parseColor("#be2351")); significa que está funcionando

¿Qué hay de malo en el código anterior?

Este es miheader_redius.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">
    <solid android:color="#000000"/>
     <corners 
      android:radius="15dp"
     />
     <gradient
            android:startColor="#434343"
             android:centerColor="#434343"
            android:endColor="#434343"
            android:angle="270" 
            android:type="linear"
            />
        <padding android:left="10dp"
     android:top="0dp"
     android:right="10dp"
     android:bottom="0dp"/> 
        <stroke
            android:width="2dp"
            android:color="#000000" />
            </shape>

Respuestas a la pregunta(2)

Su respuesta a la pregunta