4

在 Android 中,您可以通过 xml 设置背景,一切都很好。在某些特殊情况下,我需要在 Java 中设置它(即更改 List-Rows)。可以认为他可以声明:

View v = findViewById(R.id.some_view);
v.setBackgroundResource(R.drawable.somedrawable);

但不幸的是,这个特定的视图正在失去它的填充。我有一个这样的设施方法,效果很好:

private void applyDifferentBackgroundResource(int resId, View v){
        final int paddingBottom = v.getPaddingBottom();
        final int paddingLeft   = v.getPaddingLeft();
        final int paddingRight  = v.getPaddingRight();
        final int paddingTop    = v.getPaddingTop();
        v.setBackgroundResource(resId);
        v.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);
}

但只是出于好奇:是否有原因,为什么 View 失去了填充,或者 Android 代码setBackgroundResource不能(或不应该)处理填充本身?

4

0 回答 0