다름이 아니라 GridView를 이용해서 이미지를 배치한다음
클릭이벤트를 발생시켜 이미지가 클릭된 곳에 다른 이미지를 출력하고 싶습니다.
예를 들자면
□□□□□
□□□□□
□□□□□
□□□□□
이렇게 GridView로 이미지가 배치된 상태에서
■□□□□
□□□□□
□□□□□
□□□□□
검은 부분을 클릭했을시 검은부분에 이미지의 크기와 같은 다른 이미지를 불러오고 싶습니다.
notifyDataSetChanged();를 사용해서 하면 된다고 하시는데 어떻게 해야할지 모르겠어요...ㅠㅠ
그리고..
public View getView(final int position, View convertView, ViewGroup parent) {
ImageView imgbtn = null;
if (convertView == null) {
imgbtn = new ImageView(mContext);
imgbtn.setLayoutParams(new GridView.LayoutParams(80, 90));
imgbtn.setAdjustViewBounds(false);
imgbtn.setScaleType(ImageView.ScaleType.CENTER_CROP);
imgbtn.setPadding(3, 3, 3,3);
} else {
imgbtn = (ImageView) convertView;
}
imgbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
//notifyDataSetChanged();
if(position == 0){
imgbtn.setImageResource(R.drawable.icon);
}
}
});
빨간부분에서 에러가 나는데.. final ImageView 로 해야하다던군요...그래서 final을 붙였더니...
파란 부분에서 에러가 나네요...
해결방법이나 조언 부탁드립니다...
이 방법 보다는 GridView에 setOnItemClickListener를 다는 방법을 추천드립니다.
두번째 매개변수로 클릭된 view가 들어오니 이쪽에서 바꾸시면 되겠네요.
mGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
ImageView imageView = (ImageView)view;
imageView.setImageResource(R.drawable.icon);
}
});