Android:将背景设置为自定义视图

时间:2018-03-21 14:26:38

标签: android android-view

我在Android库中创建了一个customView,并从AppCompatEditText扩展而来。在init方法中,我想从我的drawable资源中设置背景。我写这段代码:

public class GrootAnimatedEditText extends AppCompatEditText {
    public GrootAnimatedEditText(Context context) {
        super(context);
        init(context);
    }

    public GrootAnimatedEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }

    public GrootAnimatedEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context);
    }
   private void init(Context context) {
        setBackground(R.drawable.roundbg);
    }
}

当我放一个点(。)roundbg和任何drawable不建议我。我也使用:

setBackground(context.getResources().getDrawable(R.drawable.roundbg));
        //or
setBackground(ContextCompat.getDrawable(context,R.drawable.roundbg));

再次不起作用!如何将drawable设置为我的自定义TextView背景?

****************编辑******************

roundbg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="5dp" />
    <stroke
        android:width="1dp"
        android:color="#44433A" />
    <solid android:color="#FFF" />
</shape>

1 个答案:

答案 0 :(得分:0)

尝试使用setBackgroundResource()setBackgroundDrawable()代替setBackground()

更多信息here