私のアクティビティでは、グラデーションを使用して 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() を呼び出すと、背景を設定できません!
* UPDATE * 皆さん、このコードは問題ありません...間違った (直接到達できない) 行でメソッドを呼び出していました! 謝罪いたします...