안녕하세요, 저는 현재 하나의 이미지를 슬라이스 앤 랜덤 화하는 퍼즐 작업을하고 있습니다. 설정시 수동으로 모든 모서리에 대해 2로 채우기를 설정 한 다음 퍼즐 완성이 완료되면 패딩을 모든 모서리에서 0으로 설정하여 이미지를 전체적으로 표시해야합니다. 문제는 퍼즐의 오른쪽 만 완전히 패딩을 제거하는 동안 일어나는 이상한 일입니다. 다른쪽에는 여전히 바닥 부분에 패딩이 있습니다. 이는 사양이 낮은 기기에서만 발생합니다.패딩 설정 postInvalidate는 퍼즐의 왼쪽 하단에 패딩을 제거하지 않음
if(true){
enable_puzzle = false;
for (int i=0; i < parent.getChildCount(); i++){
LinearLayout cont = (LinearLayout) parent.getChildAt(i);
for (int c = 0; c < cont.getChildCount(); c++){
View v = cont.getChildAt(c);
v.setClickable(false);
v.setPadding(0,0,0,0);
v.postInvalidate();
}
cont.postInvalidate(); //Tried this didn't work
}
parent.postInvalidate(); //Tried this didn't work
}
나는 그것이 아주 간단 내 레이아웃을 배치하는 방법의 더 나은 이해를 위해 (넥서스 원과 비슷하게)
여기에 퍼즐을 완료 한 후 패딩의 설정에 대한 내 코드입니다. 나는 verticalLayout을 가로 방향으로 가지고 있는데, 이것은 세로 방향으로 부모 컨테이너에 위치 할 imageViews를 가지고있다.
다음은 sample의 스크린 샷입니다.
를 (왼쪽 아래 부분에 이상한 패딩 참조) 작성에 그리고 완료에 따라 퍼즐 : 이것은 내 넥서스 S의 스크린 샷
입니다 에뮬레이터. 낮은 사양의 실제 장치에서도 똑같은 일이 발생합니다.
는UPDATE : 그것을 검사시
주 원인은 이미지 컨테이너의 폭임을 보인다. 필자는 4x4 퍼즐을 가지고 고정 된 크기 대신 체중을 사용하기 때문에 각 이미지의 너비가 고르게 분산되어 1px/dp 차이가 발생합니다. 이제 유일한 문제는 각 가로 세로 레이아웃의 너비를 나누고 각 이미지 뷰에 대해 균등 한 결과를 얻으려면 어떻게 할 수 있습니까?
그래,이게 더 나은 해결책을 찾기 위해 노력 하겠지만, 지금 당장 내가 한 일 이었어. – KaHeL