마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안녕하세요 setContentView와 inflate에 관한 질문 있습니다.

0 추천

setContentView를 이용해서 xml과 연결을 하게 되면

xml에 존재하는 view들이 로드 되는 것으로 알고 있습니다.

 

그렇다면 

setContentView(R.layout.main);

ImageView img = (ImageView) findViewById(R.id.img);

img.setImageBitmap(bitmap);

로 구현하게 되면 img가 로드되고 다시 변경되기 때문에 더 큰 오버헤드가 있는것인가요?

이 코드 대신

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View v = (View) inflater.inflate(R.layout.main, null);    

ImageView img = (ImageView) v.findViewById(R.id.img);

img.setImageBitmap(bitmap);

setContentView(v);

과 같은 코드를 이용하게 된다면 실제 안드로이드 상에서 어떤 차이가 있을까요?

 

차이가 없다면 xml를 로드하지 않고 java코드 내에서 이미지를 변경할 수 있는 방법이 있나요?

혹은 적은 오버헤드로 변경할수 있을까요?

 

고수님들 도와주세요!!

라라라라33 (390 포인트) 님이 2016년 7월 27일 질문

1개의 답변

0 추천
액티비티 기준이라면 전자가 맞는것 같구요.

어떤걸 의도한지는 모르겠지만 이미지 하나정도 세팅하는거는 별로 오버헤드라고 할것까진 없을거 같구요,

이미지를 사용하면 메모리에 신경을 쓰는게 맞다고 봅니다.

이미지 라이브러리등을 사용하시면 좋구요, 그리고 이미지는 용량이 적으면 상관없지만 많은 이미지들은 리사이즈 작업을해서 용량을 줄이는것이 효율적입니다.
캬옹이 (37,920 포인트) 님이 2016년 7월 28일 답변
...