2016-06-02 4 views
-1

목록보기에서 가로로 정렬 된 일련의 이미지가 포함 된 캐 러셀을 android에서 만들 수 있습니까? 또한 클릭 할 때 하나의 이미지 항목을 강조 표시하려고합니다.목록보기를 Horizondally 컨베이어에서 구현하는 방법?

+0

이미지를 표시하려면 ViewPager를 사용하십시오. –

+0

죄송합니다. 안드로이드에 새로운 iMac, 사용 장소가 필요합니까? viewPager – Maria

+0

[안드로이드 수평 스크롤 이미지 갤러리] (http://stackoverflow.com/questions/29429556/)와 중복 될 수 있습니다. android-horizontal-scrolling-image-gallery) –

답변

0

ListView를 사용하는 대신 RecyclerView를 사용하십시오. 이 코드 - Carousel을 확인하십시오. 루트 뷰로 RecyclerView을 사용하고 LinearLayoutManager.HORIZONTAL을 LayoutManager로 사용하십시오. 당신의 activty의 레이아웃

<android.support.v4.view.ViewPager 
    android:id="@+id/viewPager" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    /> 

의 내부

0

테이크보기 호출기는

public class Event_Image_Slider extends Activity { 
ViewPager viewPager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_event__image__slider); 
    viewPager = (ViewPager) findViewById(R.id.viewPager); 

    CustomAdapter adapter = new CustomAdapter(Event_Image_Slider.this); 
    viewPager.setAdapter(adapter); 
    } 
} 

귀하의 사용자 정의 adpter 코드, 당신의 activty에 ArrayList를 imagepathArray = 새로운 ArrayList를() 선언하기 전에;

public class CustomAdapter extends PagerAdapter{ 

Context context; 

public CustomAdapter(Context context){ 
    this.context = context; 

} 


@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    // TODO Auto-generated method stub 

    LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 

    View viewItem = inflater.inflate(R.layout.image_item, container, false); 
    ImageView imageView = (ImageView) viewItem.findViewById(R.id.imageView10); 

    Glide.with(context).load(yourActivty.imagepathArray.get(position)).into(imageView); 



    ((ViewPager)container).addView(viewItem); 

    return viewItem; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return yourActivty.imagepathArray.size(); 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    // TODO Auto-generated method stub 

    return view == ((View)object); 
} 


@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    // TODO Auto-generated method stub 
    ((ViewPager) container).removeView((View) object); 
}} 
+0

그래서 회전판이 필요하지 않습니까? 우리는 viewPager를 사용하고 있습니다. – Maria

+0

이 링크를 확인해주십시오. http://stackoverflow.com/questions/37559984/how-to-select-and-deselect-each-item-in-horizontal-carousel-in-android – Maria

+0

이미지 만 표시하려면 Horizonataly에서는 HorizontalScrollView 또는 View Pager를 사용해야합니다. –

0

는 현재 프로젝트에서 회전 목마 기능이 github의 라이브러리를 사용할 수 carouselview library의 링크입니다.

응용 프로그램 수준 Gradle을 파일 (하지 프로젝트 수준의 Gradle을) :

compile 'com.synnapps:carouselview:0.0.9' 

이 레이아웃에서 다음 코드를 포함 :

<com.synnapps.carouselview.CarouselView 
    android:id="@+id/carouselView" 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    app:fillColor="#FFFFFFFF" 
    app:pageColor="#00000000" 
    app:radius="6dp" 
    app:slideInterval="3000" 
    app:strokeColor="#FF777777" 
    app:strokeWidth="1dp"/> 

이 활동 코드를 다음 포함을

public class SampleCarouselViewActivity extends AppCompatActivity { 

    CarouselView carouselView; 

    int[] sampleImages = {R.drawable.image_1, R.drawable.image_2, R.drawable.image_3, R.drawable.image_4, R.drawable.image_5}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_sample_carousel_view); 

     carouselView = (CarouselView) findViewById(R.id.carouselView); 
     carouselView.setPageCount(sampleImages.length); 

     carouselView.setImageListener(imageListener); 
    } 

    ImageListener imageListener = new ImageListener() { 
     @Override 
     public void setImageForPosition(int position, ImageView imageView) { 
      imageView.setImageResource(sampleImages[position]); 
     } 
    }; 
} 

또한 지정된 링크에서 추가로 지원되는 xml 속성을 탐색 할 수 있습니다.