pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0);
icon_1.setBackgroundDrawable(pkgAppsList.get(i).loadIcon(getPackageManager()));
위와 같은 형식으로 휴대폰에 설치되어 있는 앱들의 이미지를 받아와
버튼에다가 setBackground 해주고 있습니다.
궁금한 것은
이렇게 하면 버튼을 클릭한 상태이건, 클릭하지 않은 상태이건 이미지의 변화가 없어서
클릭하였을 때 클릭했다라고 사용자가 인지를 못할것 같습니다.
버튼에 클릭 상태와, 클릭되지 않은 상태에서의 이미지를 xml을 통해 넣어줬는데
위와 같이 이미지를 받아와서 세팅할 때는 어떻게 해주어야
클릭했을 떄와 클릭하지 않았을 때의 이미지를 따로 세팅할 수 있나요??
조금은 다른 방법이지만..
굳이 버튼 컨트롤을 사용하지 않아도 된다면 이미지뷰에 해당 이미지를 setImageResource에 넣어 주시고
터치 이벤트를 받아서 아래와 같이 구현하면 될 것 같네요..
ImageView view = (ImageView)v;
if(event.getAction() == MotionEvent.ACTION_DOWN) {
view.setColorFilter(0xaa111111, Mode.SRC_OVER);
}else if(event.getAction() == MotionEvent.ACTION_UP) {
view.setColorFilter(0x00000000, Mode.SRC_OVER);
}
xml 에서 selector로 만든 것이 java 소스에서는 StateListDrawable 입니다.