본문 바로가기
Android

Image ViewPager

by 일용직 코딩노동자 2019. 9. 10.
728x90
반응형
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.ArrayList;

class ViewPagerAdapter extends PagerAdapter {
private Context mContext;
private ArrayList<Integer> imageList;

public ViewPagerAdapter(Context context, ArrayList<Integer> imageList)
{
this.mContext = context;
this.imageList = imageList;
}

@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.subpage, null);

ImageView imageView = view.findViewById(R.id.imageView);
imageView.setImageResource(imageList.get(position));

container.addView(view);

return view;
}

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

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

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

MainActivity.java

import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import java.util.ArrayList;
import android.support.v4.app.Fragment;

public class MainActivity extends AppCompatActivity {

private ArrayList<Integer> imageList;
private static final int DP = 24; //수치가 높을수록 옆에 그림이 조금씩 더 많이보임

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

this.initializeData();

ViewPager viewPager = findViewById(R.id.viewPager);
viewPager.setClipToPadding(false);

float density = getResources().getDisplayMetrics().density;
int margin = (int) (DP * density);
viewPager.setPadding(margin, 0, margin, 0);
viewPager.setPageMargin(margin/2);

viewPager.setAdapter(new ViewPagerAdapter(this, imageList));
}

public void initializeData() //이미지를 저장함 배열에
{
imageList = new ArrayList();

imageList.add(R.drawable.movie1);
imageList.add(R.drawable.movie2);
imageList.add(R.drawable.movie3);
imageList.add(R.drawable.movie4);
imageList.add(R.drawable.movie5);
}
}

 

ViewpagerAdapter.java

 

 

activity_main.xml

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">



<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="0dp"
android:layout_height="300dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

 

subpage.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView"
android:src="@drawable/movie1"
/>
</android.support.constraint.ConstraintLayout>

 

--결과--

 

 

궁금하신 사항은 댓글 남겨주세요.

728x90
반응형

'Android' 카테고리의 다른 글

SharedPreferences (간단한 정보저장)  (0) 2019.09.10
비콘감지  (11) 2019.09.10
EditText/TextView/ImageView/Button/Radio/RadioGroup/URI/Intent  (0) 2019.09.10
ViewPager  (0) 2019.09.10
ListView  (0) 2019.09.10

댓글