안드로이드 개발 질문/답변
(글 수 45,052)
아래와 같은 코드로 ImageView 안의 Bitmap 을 변경 합니다.( GPS 연결 버튼을 눌러 활성화 비활성화 이미지를 변경하려고 하는 것입니다.)
그러한 코드가 대략 10개 정도의 ImageView에 구현이 되어 있는데 다른 버튼은 아래 if 문으로 잘 빠지는데
지금 아래 코드만 안됩니다. if 문의 내용은 선택한 이미지뷰의 비트맵을 가지고 와서 활성화 비트맵 비활성화 비트맵과
비교하여 바꿔주는 방식 입니다. 디버깅을 해보니 분명 같은 비트맵이데 값이 다르게 나옵니다. ㅜㅜ
리소스가 꼬였나 해서 Project Clean 도 해보고 했는데 이것만 그럽니다.
그리고 더 짜증 나는건... 지금 갤럽시탭7 진저에서 테스트 하고 있는데...
갤넥 아이스크림 에서는 잘 됩니다. 아... 운영체제 버그인지... 답답해 죽겠습니다..
혹시 저와 같은 증상을 보신분이나 또 해결하신님은 안계신가요....ㅜㅜ
ImageView imgv = (ImageView)findViewById(R.id.BTN_GPSCONNECTION2);
Drawable tempImg = imgv.getDrawable();
Drawable tempRes = GeoSync3Activity.this.getResources().getDrawable(R.drawable.gps_connection);
Drawable tempRes2 = GeoSync3Activity.this.getResources().getDrawable(R.drawable.gpsconnection_push);
Bitmap tmpBitmap = ((BitmapDrawable)tempImg).getBitmap();
Bitmap tmpBitmapRes = ((BitmapDrawable)tempRes).getBitmap();
Bitmap tmpBitmapRes2 = ((BitmapDrawable)tempRes2).getBitmap();
MediaPlayer mp;
if(tmpBitmap.equals(tmpBitmapRes)) {
imgv.setImageResource(R.drawable.gpsconnection_push);
mp = MediaPlayer.create(getApplicationContext(), R.raw.connected);
mp.start();
}
else if(tmpBitmap.equals(tmpBitmapRes2)) {
imgv.setImageResource(R.drawable.gps_connection);
mp = MediaPlayer.create(getApplicationContext(), R.raw.disconnected);
mp.start();
}




이런 방식보다는 selector를 사용하는게 낫지 않을까요...
selected 속성을 쓰면 될듯합니다.