2011-08-26 4 views
0

가로형 LinearLayout이 포함 된 HorizontalScrollView가 있습니다. 이제 ImageViews 사이를 스크롤 할 수 있도록 똑같이 큰 ImageView를 LinearLayout에 추가하고 있습니다. ImageViews는 그들 사이에 공간없이 나란히 단단히 놓여 야하지만 각 이미지의 양쪽면에는 거대한 공간이 생깁니다 (이미지의 너비가 절반이라고 생각합니다).LinearLayout 뷰 간 공간 제거 방법

다음은 내가이 작업을 수행 한 방법입니다. 누군가 제게 팁을 주었으면합니다.

public class SnapGallery extends HorizontalScrollView { 

    private ArrayList<Bitmap> items = null; 

    protected Context context = null; //Context of the activity 
    protected LinearLayout wrapper = null; //This serves as a container for the images in the SnapGallery. 

    //Constructor 
    public SnapGallery(Context context) { 
     super(context); 

     this.context = context; 
     items = new ArrayList<Bitmap>(); 

     this.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

     wrapper = new LinearLayout(context); 
     wrapper.setOrientation(LinearLayout.HORIZONTAL); 
     wrapper.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

     wrapper.setPadding(0, 0, 0, 0); 
     wrapper.setGravity(Gravity.LEFT); 

     this.addView(wrapper); 

     items = getTestBitmaps(); 

     for (Bitmap b : items) { 
      ImageView curr = createViewFromBitmap(b); 
      wrapper.addView(curr, new LinearLayout.LayoutParams(0, LayoutParams.MATCH_PARENT, 1.0f)); 
     } 

    } 

    public ImageView createViewFromBitmap (Bitmap bitmap) { 

     ImageView view = new ImageView(context); 
     view.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
     view.setPadding(0, 0, 0, 0); 
     view.setImageBitmap(bitmap); 
     return view;   
    } 
} 

미리 감사드립니다.

+0

여백을 0으로 설정했는지 패딩을 설정 했습니까? – Kerry

답변

0

귀하의 이미지, 확장 얻고있다.

+0

완벽한, 트릭을. 고마워요! – metaclypse

0

은 아마이 같은 0 뭔가에 여백을 설정해야합니다 : 당신은 무료로 수평 공간을 제거하기 위해 이미지 오브젝트에 adjustViewBounds (true)를 호출 할 필요가 있으므로

LinearLayout.LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
params.setMargins(0, 0, 0, 0); 
wrapper.setLayoutParams(params); 
+0

게시물을 보내 주셔서 감사합니다.하지만 작동하지 않았습니다. 예전과 같습니다. – metaclypse

+0

다른 'LinearLayout.LayoutParams' 개체가 여러 개 있습니다. 그들 모두에 그것을 시도 했습니까? 특히'wrapper.addView()'줄에있는 것. –

+0

예,하지만 불행히도 실제적인 변화는 없었습니다. – metaclypse