メインの自動生成クラスがあります。xml で宣言したイメージ ビューに単純な ic_launcher png を描画したいと考えています。
私の主なクラス:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyCanvas can = new MyCanvas(this);
//ImageView img = (ImageView) findViewById(R.id.imageView1);
//img.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher));
}
}
私が作ったクラス:
public class MyCanvas extends View{
public MyCanvas(Context context) {
super(context);
ImageView img = (ImageView) findViewById(R.id.imageView1);
img.setImageBitmap(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher));
}
}
メイン アクティビティでビットマップの設定をコメントアウトしたことに気付くでしょう。それは、試練だったからです。コードはメイン アクティビティでは完全に機能しますが、他のクラスでは失敗します。logCat がどのように機能するかはわかりませんが、「null ポインター例外」が表示されます。ImageView をロードしたときにエラーが発生したことはほぼ確実です。
私はこれを試しました: context.findViewById(R.id.imageView1); 無駄に。
画像の ID は imageView1 です。