在我的活动中,我需要使用渐变更改 ImageView 背景,因此我使用具有透明区域的图像,并在需要时更改其背景。这是一些代码:
private static View myImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myActivityLayout);
myImage = findViewById(R.id.myImageID);
}
[...]
private void myImageUpdate() {
GradientDrawable gradient;
int[] colors = {0xFF00FF00, 0xFF0000FF};
// I make some changes to these colors..
gradient = new GradientDrawable(GradientDrawable.Orientation.BOTTOM_TOP, colors);
myImage.setBackgroundDrawable(gradient);
}
现在,问题是:如果我在 onCreate() 方法中调用 myImageUpdate(),一切正常。如果我从代码的另一部分(如 onClick 回调)调用 myImageUpdate(),我无法设置我的背景!
* 更新 * 伙计们,这段代码很好......我在错误的(不可直接访问的)行中调用了我的方法!我很抱歉...