안녕하세요. 이번 포스팅은 오토스크롤 뷰페이저 입니다.
주로 광고사진을 넣거나 사진을 효율적으로 올리기 위해 사용합니다.
우선 결과물입니다. 한번 만들어 두면 여러곳에서 잘 사용할 수 있을거 같죠 ?
제가 사용한 뷰는 엑티비티 아래에 있는 프래그먼트입니다.
보여질 클래스에 연결된 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;
}
}
'프로그래밍 > 안드로이드,xml' 카테고리의 다른 글
안드]로그인페이지와 회원가입페이지 (1) (0) | 2018.11.08 |
---|---|
안드] 액션바 컬러 변경하기 (0) | 2018.11.08 |
안드 클릭 이벤트 처리 (0) | 2018.10.31 |
안드 롱클릭 클릭후 해제시 온클릭이 클릭이 될때 (0) | 2018.10.29 |
앱 공부 현황 (0) | 2018.10.29 |