Android第一贴:主界面九宫格,点击每个宫格显示完该宫格图片后,再滑动可以显示上一个宫格图片
Android第一贴:主界面九宫格,点击每个宫格显示完该宫格图片后,再滑动可以显示下一个宫格图片
主Activity为GridLayout九宫格,点击其中一个宫格(如设置),左右滑动显示设置操作指引的图片,当显示完该宫格图片,再手指滑动可显示下一个宫格(如音乐)的指引操作图片,请问该如何实现:当显示完该宫格图片,再手指滑动可显示下一个宫格(如音乐)的指引操作图片。
目前使用ViewPager和Adapter,实现了:点击每个宫格,左右滑动显示该宫格操作指引的图片。就是不知道如何实现连续滑动实现下一宫格图片,请大侠指教。
主Activity为GridLayout九宫格,点击其中一个宫格(如设置),左右滑动显示设置操作指引的图片,当显示完该宫格图片,再手指滑动可显示下一个宫格(如音乐)的指引操作图片,请问该如何实现:当显示完该宫格图片,再手指滑动可显示下一个宫格(如音乐)的指引操作图片。
目前使用ViewPager和Adapter,实现了:点击每个宫格,左右滑动显示该宫格操作指引的图片。就是不知道如何实现连续滑动实现下一宫格图片,请大侠指教。
- Java code
public class MainActivity extends Activity { ImageView music; ImageView sms; ImageView setting; private final static String MUSIC="android.intent.action.Music"; private final static String SMS="android.intent.action.Sms"; private final static String SETTING="android.intent.action.Setting"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sms=(ImageView)findViewById(R.id.sms_iv); sms.setOnClickListener(smsListener); music=(ImageView)findViewById(R.id.music_iv); music.setOnClickListener(musicListener); setting=(ImageView)findViewById(R.id.setting_iv); setting.setOnClickListener(settingListener); } OnClickListener musicListener=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub System.out.println("music"); Intent intent=new Intent(MUSIC); intent.setClass(MainActivity.this, MySlid.class); startActivity(intent); } }; OnClickListener smsListener=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub System.out.println("sms"); Intent intent=new Intent(SMS); intent.setClass(MainActivity.this, MySlid.class); startActivity(intent); } }; OnClickListener settingListener=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub System.out.println("setting"); Intent intent=new Intent(SETTING); intent.setClass(MainActivity.this, MySlid.class); startActivity(intent); } }; } public class MySlid extends Activity { private ViewPager mViewPager; private MyPagerAdapter myPagerAdapter; private List<View> mListViews; private List<View> mListViewsExt; private Context cxt; private LayoutInflater mInflater; int mCount; boolean musicFlag=false; int musicLen=0; int len=0; int numberofImg[]={3,5,6}; public MySlid() { // TODO Auto-generated constructor stub } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); cxt=this; mInflater=getLayoutInflater(); mListViews=new ArrayList<View>(); mListViewsExt=new ArrayList<View>(); Intent intent=getIntent(); mListViews.add(mInflater.inflate(R.layout.layout1, null)); mListViews.add(mInflater.inflate(R.layout.layout2, null)); mListViews.add(mInflater.inflate(R.layout.layout3, null)); mListViews.add(mInflater.inflate(R.layout.layout4, null)); mListViews.add(mInflater.inflate(R.layout.layout5, null)); mListViews.add(mInflater.inflate(R.layout.layout6, null)); len=mListViews.size(); mListViewsExt=mListViews; if(intent.getAction()=="android.intent.action.Sms") { mListViews=mListViews.subList(0, 3); mListViewsExt=mListViewsExt.subList(numberofImg[0], len); musicFlag=true; musicLen=mListViews.size(); } else if(intent.getAction()=="android.intent.action.Music") { mListViews=mListViews.subList(3, 5); mListViewsExt=mListViewsExt.subList(numberofImg[1], len); } else if(intent.getAction()=="android.intent.action.Setting") { mListViews=mListViews.subList(5, 6); mListViewsExt=mListViewsExt.subList(numberofImg[2], len); } myPagerAdapter=new MyPagerAdapter(cxt,mListViews); mViewPager=(ViewPager)findViewById(R.id.mysomepager); mViewPager.setAdapter(myPagerAdapter); mViewPager.setOnPageChangeListener(ViewPagerChangeListener); } OnPageChangeListener ViewPagerChangeListener=new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { // TODO Auto-generated method stub if(arg0>mListViews.size()) { mCount++; mListViews=mListViewsExt; } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } }; private class MyPagerAdapter extends PagerAdapter { public MyPagerAdapter(Context context,List<View> views) { mListViews = views; cxt=context; mCount = views.size(); } @Override public int getCount() { // TODO Auto-generated method stub return mCount+1; } @Override public boolean isViewFromObject(View view, Object object) { // TODO Auto-generated method stub return view==(object); } @Override public Object instantiateItem(View collection, int position) { if (position >= mListViews.size()) { int newPosition = position%mListViews.size(); position = newPosition; mCount++; } if(position <0){ position = -position; mCount--; } try { ((ViewPager) collection).addView(mListViews.get(position), 0); } catch (Exception e) { } //((ViewPager) collection).addView(mListViews.get(position), 0); return mListViews.get(position); } @Override public void destroyItem(View collection, int position, Object view) { if (position >= mListViews.size()) { int newPosition = position%mListViews.size(); position = newPosition; // ((ViewPager) collection).removeView(mListViews.get(position)); } if(position <0){ position = -position; // ((ViewPager) collection).removeView(views.get(position)); } //((ViewPager) collection).removeView(mListViews.get(position)); } @Override public void finishUpdate(View arg0) {} @Override public void restoreState(Parcelable arg0, ClassLoader arg1) {} @Override public Parcelable saveState() { return null; } @Override public void startUpdate(View arg0) {} } } 以下是布局文件: activity_main.xml <?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:columnCount="3" android:rowCount="3" android:background="@drawable/bg"> <ImageView android:id="@+id/sms_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/sms_iv"/> <ImageView android:id="@+id/music_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/sms_iv"/> <ImageView android:id="@+id/setting_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/sms_iv"/> <ImageView android:id="@+id/theme_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/sms_iv"/> <ImageView android:id="@+id/home_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/sms_iv"/> <ImageView android:id="@+id/photo_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/sms_iv"/> <ImageView android:id="@+id/video_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/sms_iv"/> <ImageView android:id="@+id/image_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/sms_iv"/> <ImageView android:id="@+id/paly_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/sms_iv"/> </GridLayout> 以下为:main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/mysomepager"/> </LinearLayout> 每个宫格下的图片都是ImageView,layout1.xml,这只是其中一张图片,其他一样,不贴了 <?xml version="1.0" encoding="utf-8"?> <ImageView android:id="@+id/iv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/iv1" xmlns:android="http://schemas.android.com/apk/res/android"> </ImageView>