메인레이아웃
레이아웃 1
텍스트뷰
에디트뷰
레이아웃 2
텍스트뷰
에이트뷰
이런 식으로 레이아웃이 구성되어있는데
메인 레이아웃에 이미지뷰를 생성해서 onCreate시 setInvisible 메소드로 invisivility 했다가
특정한 이벤트가 들어오면 웹에서 이미지를 받아와서 이미지뷰를 visibility 상태로 만듦과 동시에 이미지를 뿌려주려고 하는데
메인 레이아웃에 이미지뷰를 추가만 하면 아예 앱자체가 실행이 안되고 강제종료가 되어버리네요.
이런 식으로 이미지뷰를 사용하는 다른 방법이 있는지 궁금합니다.
레이아웃 파일에 선언을 해놨구요
메인 액티비티 클래스에서
View mainImage = findViewById(R.id.ImageMain);
onCreate(){
mainImage.setVisibility(View.INVISIBILITY);
}
와 같이 해줬습니다
------------------------------------------------------------------
댓글쓰려는데 계속 300초 글제한이...
View mainImage = findViewById(R.id.ImageMain);는
onCreate 밖에 전역변수로 선언되어있습니다.
View mainImage = findViewById(R.id.ImageMain);
이코드는 선언하면서 바로 써주신거에요? 아님 onCreate 안에들어가 있나요?
onCreate 밖에 선언되있습니다.
public class AndroidViewerActivity extends Activity
{
View mainImage = findViewById(R.id.ImageMain);
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mainImage.setVisivility(View.INVISIBLE);
}
}
이런식으루요
public class AndroidViewerActivity extends Activity
{
View mainImage = null;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mainImage = (ImageView) findViewById(R.id.ImageMain);
mainImage.setVisivility(View.INVISIBLE);
}
}
이런식으로 되어야 합니다. setContentView 를 한 후에 findViewById 를 사용할 수 있습니다.




레이아웃 파일에 선언이 된 상태로, visibility 만 변경 하시는건지, 런타임 상에서 view 를 생성해서 추가하시는 건지 설명이 좀 애매하네요.