안녕하세요. 이번 포스팅은 오토스크롤 뷰페이저 입니다.

주로 광고사진을 넣거나 사진을 효율적으로 올리기 위해 사용합니다.




우선 결과물입니다. 한번 만들어 두면 여러곳에서 잘 사용할 수 있을거 같죠 ?


제가 사용한 뷰는 엑티비티 아래에 있는 프래그먼트입니다.


보여질 클래스에 연결된 xml부분 입니다.

<cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager
android:id="@+id/autoViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp">

</cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager>
manifest에 추가할 퍼미션입니다.

<uses-permission android:name="android.permission.INTERNET"/>





AutoScrollViewpager 를 사용하기 위해서 gradle에 추가해 줍시다.
 api ('cn.trinea.android.view.autoscrollviewpager:android-auto-scroll-view-pager:1.1.2') {
exclude module: 'support-v4'
}}
repositories {
mavenCentral()
google()}
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'




AutoScrollAdapter 입니다.

public class AutoScrollAdapter extends PagerAdapter {

Context context;
ArrayList<String> data;

public AutoScrollAdapter(Context context, ArrayList<String> data) {
this.context = context;
this.data = data;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {

//뷰페이지 슬라이딩 할 레이아웃 인플레이션
LayoutInflater inflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.auto_viewpager,null);
ImageView image_container = (ImageView) v.findViewById(R.id.image_container);
Glide.with(context).load(data.get(position)).into(image_container);
container.addView(v);
return v;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {

container.removeView((View)object);

}

@Override
public int getCount() {
return data.size();
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}















적용할 프래그먼트입니다.

다음과 같이 import 해주시고 

레이아웃을 연결해준뒤 ArrayList에 사용할 이미지를 연결해줍니다. 

해당레이아웃의 오토스크롤 뷰페이저를 연결해준후 어뎁터와 연결하여줍니다.

import cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager;

public class TabFragment3 extends Fragment {
AutoScrollViewPager autoScrollViewPager;
ArrayList<String>data =new ArrayList<>();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v= inflater.inflate(R.layout.tab_fragment_3, container, false);
LinearLayout layout = (LinearLayout) v.findViewById(R.id.fragment_uri);

ArrayList<String> data = new ArrayList<>(); //이미지 url를 저장하는 arraylist
data.add("http://www.lotteria.com/Images/main/visual/page2/img_lpoint_event_181026.jpg");
data.add("http://www.burgerking.co.kr/Content/menu/image/main/181018_Product_PC_detail_5.png");
data.add("https://www.baskinrobbins.co.kr/upload/EditUpload/1541032533-99.png");
data.add("http://www.popeyes.co.kr/images/banner/burger_main_180607.png");


autoScrollViewPager = (AutoScrollViewPager)v.findViewById(R.id.autoViewPager);
AutoScrollAdapter scrollAdapter = new AutoScrollAdapter(getActivity(), data);
autoScrollViewPager.setAdapter(scrollAdapter); //Auto Viewpager에 Adapter 장착
autoScrollViewPager.setInterval(3000); // 페이지 넘어갈 시간 간격 설정
autoScrollViewPager.startAutoScroll(); //Auto Scroll 시작

return v;

}





}



+ Recent posts