메인 자동 생성 클래스가 있습니다. 난 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입니다.
public MyCanvas(Context context,ImageView img) {
super(context);
img.setImageBitmap(BitmapFactory.decodeResource(context.getResources(),
R.drawable.ic_launcher));
}
및 활동에서로 이미지 뷰 인스턴스를 보내 : MyCanvas에서
setContentView(R.layout.activity_main);
ImageView img = (ImageView) findViewById(R.id.imageView1);
MyCanvas can = new MyCanvas(this,img);
'logCat의 작동 방식을 모르겠습니다. '- 배우셔야합니다. 중요한 기술이고 오류가 발생한 위치를 정확히 알려주었을 것입니다. 그런 다음 디버거가 정확히 무엇을 null로 표시하는지 보여줍니다. – Simon