2013-10-23 2 views
0

나는 아래 코드를 사용하여 ViewPager를 통해 이미지 목록을 표시하기 위해 Universal Image Downloader를 사용했습니다. 코드에서 layout_width = "fill_parent"난 로이드 언급된다하더라도이 갤럭시 S4.Image 제외한 모든 장치에서 잘 작동ViewPager가 Samsung Galaxy s4의 전체 크기 (너비)를 차지하지 않음

ViewPager layout 

<RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <android.support.v4.view.ViewPager 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/pager" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" /> 

     **<LinearLayout 
      android:id="@+id/dot_images_layout" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_marginBottom="5dp" 
      android:gravity="center" 
      android:orientation="horizontal" />** 
    </RelativeLayout> 

I am displaying the list of images using a class which extends PagerAdapter. 

    private class ImagePagerAdapter extends PagerAdapter { 

     private String[] images; 
     private LayoutInflater inflater; 

     ImagePagerAdapter(String[] images) { 
      this.images = images; 
      inflater = getLayoutInflater(); 
     } 

     @Override 
     public void destroyItem(ViewGroup container, int position, Object object) { 
      ((ViewPager) container).removeView((View) object); 
     } 

     @Override 
     public void finishUpdate(View container) { 
     } 

     @Override 
     public int getCount() { 
      return images.length; 
     } 

     @Override 
     public Object instantiateItem(ViewGroup view, int position) { 
      View imageLayout = inflater.inflate(R.layout.item_pager_image, view, false); 
      ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image); 
      final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading); 


      imageLoader.displayImage(images[position], imageView, options, new SimpleImageLoadingListener() { 
       @Override 
       public void onLoadingStarted(String imageUri, View view) { 
        spinner.setVisibility(View.VISIBLE); 
       } 

       @Override 
       public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 


        spinner.setVisibility(View.GONE); 
       } 

       @Override 
       public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
        spinner.setVisibility(View.GONE); 
       } 
      }); 

      ((ViewPager) view).addView(imageLayout, 0); 
      return imageLayout; 
     } 



    } 

**item_pager_image layout** 

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="1dip" > 

    <ImageView 
     android:id="@+id/image" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:adjustViewBounds="true" 
     android:contentDescription="@string/descr_image" /> 

    <ProgressBar 
     android:id="@+id/loading" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:visibility="gone" /> 

</FrameLayout> 

장치의 전체 폭을 차지하지 않는다. 아무도 나를 도울 수 있습니까?

애추 사전에

enter image description here

감사합니다 아래 촬영.

답변

1

이미지가 단순히 화면과 같이 크기가 크지 않아서 채울 수 없다고 가정 할 수 있습니다. 이미지 뷰에 배경색을 부여하고 이미지 뷰 자체가 부모를 채우는 지 확인합니다 (이미지 옆의 테두리는 해당 색으로 표시됨).

이 경우는 ImageView's ScaleType입니다. 나는 fitX가 너를 위해 일해야한다고 생각해.

당신은 자바 setScaleType 통해 scaleType을 추가하거나 XML로 답장을 보내 android:scaleType

+0

감사 속성 수 있습니다. – ravi

관련 문제