본문 바로가기
안드로이드

안드로이드 버튼들 중 배경색 있는거 혹은 active 된거 체크

by 뇽꾸리 2022. 3. 23.
반응형

 

밑에 키보드같이 생긴 버튼들을 눌렀을 때 저기 display되어있는 이미지들에 배경색을 변경해주는 로직을 짜려는데 버튼색 어케가져오지부터ㅠㅠ 안드로이드를 예전에 코르도바로 잠깐 뭐 몇일? 분석한적있지만 거의 처음이라 넘 힘들었다.

 

    /* 왼쪽 버튼 클릭 */
        keypadBtn1.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.N)
            @Override
            public void onClick(View view) {
                ImageView btn[][] = {
                        {
                                displayLayout.findViewById(R.id.imageA),
                                displayLayout.findViewById(R.id.imageB),
                                displayLayout.findViewById(R.id.imageC),
                        },
                        {
                                displayLayout.findViewById(R.id.imageCC),
                                displayLayout.findViewById(R.id.imageD),
                                displayLayout.findViewById(R.id.imageE),
                        },
                };


                for (int i = 0; i < btn.length; i++) {
                    for (int j = 0; j < btn[i].length; j++) {
                        //배경색있는놈 찾기
                        if (btn[i][j].getBackground() != null  ) {

                            //왼쪽으로 이동할게 없으면 종료
                            if (j == 0 ) {
                                break;
                            }

                            //색 초기화
                            initDisplayImgView(btn);

                            //왼쪽 클릭 시 자기위치기준 왼쪽 배경색 변경
                            btn[i][j - 1].setBackgroundResource(R.color.bs_primary);
                            break;
                        }
                    }
                }
            }
        });
    }
    
    @RequiresApi(api = Build.VERSION_CODES.N)
    private void initDisplayImgView( ImageView btn[][] ){
        //초기화
        Arrays.stream(btn).forEach(data -> {
            Arrays.stream(data).forEach(d -> {
                    d.setBackgroundResource(0);
            });
        });
    }

 

반응형

댓글