2011-10-11 5 views
0

저는 android 용 응용 프로그램을 개발 중이며 모든 셀을 볼 수 있도록 화면 중앙에 세로로 배치 된 큰 오래된 GridView가 있습니다.GridView의 크기를 동적으로 변경합니다.

내가 원하는 것은 모든 셀을 3 배로 확대하여 사용자가 대신 gridview에서 스크롤 할 수 있도록하는 기능입니다.

게임에 익숙하다면 Wordfeud에서 어떻게 동작하는지 분류하십시오.

웹을 검색했지만 만족스러운 해결책을 찾지 못했습니다. 어댑터의 레이아웃 매개 변수를 그리드 타일로 변경하는 방법을 찾았지만 가로로 늘어 뜨리지 않고 가로로 늘리지 않았습니다. 전체 앱은 목록을 스크롤하여 그리드가 모든보기 등을 다시로드 할 때까지는 느리고 반응이 없습니다.

아무런 도움이 필요하지 않습니다.

+1

HorizontalScrollview 안에 gridview를 놓으십시오. 실제로 이것은 권장 사항이 아니지만 시도하고 싶다면 ..... –

답변

0

결국에는 캔버스가있는 사용자 정의보기를 사용했습니다. GridView를 구부리지 않는 것보다 훨씬 쉽습니다.

0

당신이 물어 본 지 꽤 오래되었지만 비슷한 문제가있어서 해결하는데 오랜 시간이 걸리므로 다른 사람이이 문제에 걸려 들기를 바랍니다. 대신에 ... 방법의 ...

 scaleDetector = new ScaleGestureDetector(context, new ScaleGestureListener()); 

는 뷰 그룹이기 때문에, 파견를 오버라이드 (override) : 나는 GridLayout과 클래스를 확장하고 생성자에서

private class ScaleGestureListener 
    extends ScaleGestureDetector.SimpleOnScaleGestureListener 

의 인스턴스를 접선 결국

 @Override 
    public boolean dispatchTouchEvent(MotionEvent ev){ 
     scaleDetector.onTouchEvent(ev); 
     super.dispatchTouchEvent(ev); 
     return true; 
    } 

    @Override 
    public void dispatchDraw(Canvas canvas) { 
     String disp = String.valueOf(mScaleFactor); 
     Log.v(TAG, "dispatch draw " + disp); 

     canvas.save(); 
       // i have some other stuff in here specific to my app 
     canvas.scale(mScaleFactor, mScaleFactor); 
     super.dispatchDraw(canvas); 
     canvas.restore(); 
    } 
관련 문제