在 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
不能(或不应该)处理填充本身?