GridFragment.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
package com.UI.TabLayout; import java.util.List; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; public class GridFragment extends Fragment { protected static final String EXTRA_RES_ID = "POS"; private List<Integer> mThumbNailIDs; private GridView mGridview; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mThumbNailIDs = getArguments().getIntegerArrayList(TabLayoutActivity.THUMBNAIL_IDS); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mGridview.setAdapter(new ImageAdapter(getActivity(), mThumbNailIDs)); mGridview.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Intent intent = new Intent(getActivity(), ImageViewActivity.class); intent.putExtra(EXTRA_RES_ID, (int) id); startActivity(intent); } }); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.grid_fragment, container, false); mGridview = (GridView) view.findViewById(R.id.gridview); return view; } } |
ImageAdapter.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
package com.UI.TabLayout; import java.util.List; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; public class ImageAdapter extends BaseAdapter { private static final int PADDING = 8; private static final int WIDTH = 250; private static final int HEIGHT = 250; private Context mContext; private List<Integer> mThumbIds; public ImageAdapter(Context c, List<Integer> ids) { mContext = c; this.mThumbIds = ids; } @Override public int getCount() { return mThumbIds.size(); } @Override public Object getItem(int position) { return null; } // Will get called to provide the ID that // is passed to OnItemClickListener.onItemClick() @Override public long getItemId(int position) { return mThumbIds.get(position); } // create a new ImageView for each item referenced by the Adapter @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView = (ImageView) convertView; // if convertView's not recycled, initialize some attributes if (imageView == null) { imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(WIDTH, HEIGHT)); imageView.setPadding(PADDING, PADDING, PADDING, PADDING); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); } imageView.setImageResource(mThumbIds.get(position)); return imageView; } } |
ImageViewActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package com.UI.TabLayout; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.ImageView; public class ImageViewActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent i = getIntent(); ImageView imageView = new ImageView(getApplicationContext()); imageView .setImageResource(i.getIntExtra(GridFragment.EXTRA_RES_ID, -1)); setContentView(imageView); } } |
TabLayoutActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
package com.UI.TabLayout; import java.util.ArrayList; import java.util.Arrays; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.os.Bundle; public class TabLayoutActivity extends Activity { private static final String ANIMALS_TABSTRING = "Animals"; private static final String FLOWERS_TABSTRING = "Flowers"; protected static final String THUMBNAIL_IDS = "thumbNailIDs"; private ArrayList<Integer> mThumbIdsFlowers = new ArrayList<Integer>( Arrays.asList(R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4, R.drawable.image5, R.drawable.image6, R.drawable.image7, R.drawable.image8, R.drawable.image9, R.drawable.image10, R.drawable.image11, R.drawable.image12)); private ArrayList<Integer> mThumbIdsAnimals = new ArrayList<Integer>( Arrays.asList(R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0)); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ActionBar tabBar = getActionBar(); tabBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); GridFragment flowerFrag = new GridFragment(); Bundle args = new Bundle(); args.putIntegerArrayList(THUMBNAIL_IDS, mThumbIdsFlowers); flowerFrag.setArguments(args); tabBar.addTab(tabBar.newTab().setText(FLOWERS_TABSTRING) .setTabListener(new TabListener(flowerFrag))); GridFragment animalFrag = new GridFragment(); args = new Bundle(); args.putIntegerArrayList(THUMBNAIL_IDS, mThumbIdsAnimals); animalFrag.setArguments(args); tabBar.addTab(tabBar.newTab().setText(ANIMALS_TABSTRING) .setTabListener(new TabListener(animalFrag))); } public static class TabListener implements ActionBar.TabListener { private final Fragment mFragment; public TabListener(Fragment fragment) { mFragment = fragment; } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { if (null != mFragment) { ft.replace(R.id.fragment_container, mFragment); } } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { if (null != mFragment) ft.remove(mFragment); } } } |
main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:orientation="vertical" > <LinearLayout android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > </LinearLayout> </LinearLayout> |
grid_fragment.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <GridView android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="match_parent" android:columnWidth="90dp" android:gravity="center" android:horizontalSpacing="10dp" android:numColumns="auto_fit" android:stretchMode="columnWidth" android:verticalSpacing="10dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="XXXXX" > </TextView> </LinearLayout> |