Loh kok tidak menjelaskan gridview? karena gridview sudah cukup jelas dan tutorial tentang cara membuat gridview sudah sangat banyak, jadi yang saya tekankan ada pada viewpager. Viewpager adalah komponen android yang sering dipakai untuk menampilkan data dalam format full screen dan use bisa berpindah antar data dengan menggeser ke kiri atau kekanan. COntohnya adalah saat kita membuka galeri image.
Tutorial ini sebenarnya adalah pengembangan dari tutorial Gridview yang ada di Androidhive dengan judul Android Gridview layout tutorial. Silahkan membacanya sendiri, dsitu sudah sangat gamblang tentang konsep gridview.
File XML yang dibutuhkan
- grid_layout.xml, bertanggung jawab data dalam format grid
- full_image.xml , bertanggung jawab untuk menampilkan gambar full screen
- viewpager_main.xml, bertanggung jawab untuk mengelola perpindahan halaman.
- MainGridActivity.java, menampilkan grid gambar.
- ImageAdapter.java , mengelola model data dan menampilkannya di gridview.
- FullPagerActivity.java, menampilkan gambar full screen
- ViewPagerAdapter.java, mengelola model data dari viewpager agar bisa ditampilan dengan benar.
Kode ViewPagerAdapter.java
source code 01020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758packagecom.candralab.viewpager;importandroid.content.Context;importandroid.support.v4.view.PagerAdapter;importandroid.support.v4.view.ViewPager;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.ImageView;importandroid.widget.RelativeLayout;publicclassViewPagerAdapterextendsPagerAdapter {Context context;int[] anArray;LayoutInflater inflater;publicViewPagerAdapter(Context context,int[] flag) {this.context = context;this.anArray = flag;}@OverridepublicintgetCount() {returnanArray.length;}@OverridepublicbooleanisViewFromObject(View view, Object object) {returnview == ((RelativeLayout) object);}@OverridepublicObject instantiateItem(ViewGroup container,intposition) {ImageView img;inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View itemView = inflater.inflate(R.layout.full_image, container,false);img = (ImageView) itemView.findViewById(R.id.full_image_view);img.setImageResource(anArray[position]);((ViewPager) container).addView(itemView);returnitemView;}@OverridepublicvoiddestroyItem(ViewGroup container,intposition, Object object) {((ViewPager) container).removeView((RelativeLayout) object);}}FullPageActivity
source code 0102030405060708091011121314151617181920212223242526272829303132333435363738394041424344packagecom.candralab.viewpager;importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importandroid.support.v4.view.PagerAdapter;importandroid.support.v4.view.ViewPager;importandroid.util.Log;importandroid.view.Menu;publicclassFullPagerActivityextendsActivity {// Declare VariablesViewPager viewPager;PagerAdapter adapter;int[] flag;@OverridepublicvoidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.viewpager_main);Intent i = getIntent();Integer position = i.getExtras().getInt("id");Log.d("posisi",position.toString());ImageAdapter imageAdapter =newImageAdapter(this);flag = imageAdapter.wallpaper;viewPager = (ViewPager) findViewById(R.id.pager);adapter =newViewPagerAdapter(this, flag);viewPager.setAdapter(adapter);viewPager.setCurrentItem(position);}@OverridepublicvoidonPause(){super.onPause();System.gc();}}


Tidak ada komentar:
Posting Komentar