Programmatically create textview background from drawable in Android

孤者浪人 提交于 2019-11-30 08:19:59

问题


I have to set the background programmatically on Android TextView

I have using below code. it's not working and also its gave me nullpointerexception error.

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

but I have to put these

best_deals.setTextColor(Color.parseColor("#be2351")); means it's working

what's wrong in above code?

This is my header_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>

回答1:


You need to use setBackgroundResource() method.

For example :

best_deals.setBackgroundResource(R.drawable.headerradius);

More about setBackgroundResource().




回答2:


The Final code that worked

The older API than JELLYBEAN have different way to load drawable programatically. Try this:

       final int sdk = android.os.Build.VERSION.SDK_INT;
        if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
            textView.setBackgroundDrawable(getResources().getDrawable(R.drawable.shape_rect_outline));
        } else {
            textView.setBackground(getResources().getDrawable(R.drawable.shape_rect_outline));
        }


来源:https://stackoverflow.com/questions/17759823/programmatically-create-textview-background-from-drawable-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!