关于类似美团团购gallery的联动更新
2015-01-04 15:43
218 查看
在美团上的gallery是进行过修改的,主要的改动是滑动的时候一次一个,没有快速滑动,去掉了回弹效果。
猜测实现的代码是:
以上代码肯定不是他的实现方式,因为仔细看的话他们应该还有速度大小的监听,即对velocityX的值大小有限制,防止太慢,混淆和scroll的区别。
然后是对监听的设置:
上面的实现是将选中的view的前景色变亮,未选中的变暗,同时关联大下面电影详情部分的变化,列出场次。
对于日期导航,使用HorizontalScrollView和RadioGroup来实现。列表显示电影安排使用viewpager。
同时在viewpager的监听和RadioGroup的监听做关联处理,同时动态滚动HorizontalScrollView。
在这些处理时遇到的问题及解决的办法在前面已经有了文章说明,可以从这里看到。
猜测实现的代码是:
import android.content.Context; import android.util.AttributeSet; import android.view.KeyEvent; import android.view.MotionEvent; import android.widget.Gallery; public class SlideOnePageGallery extends Gallery { private static final String TAG = "SlideOnePageGallery"; private Context mContext; public SlideOnePageGallery(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); this.mContext = context; } public SlideOnePageGallery(Context context, AttributeSet attrs) { super(context, attrs); this.mContext = context; } public SlideOnePageGallery(Context context) { super(context); this.mContext = context; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { int kEvent; if (isScrollingLeft(e1, e2)) { kEvent = KeyEvent.KEYCODE_DPAD_LEFT; } else { kEvent = KeyEvent.KEYCODE_DPAD_RIGHT; } onKeyDown(kEvent, null); return false; } private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) { return e2.getX() > e1.getX(); } }
以上代码肯定不是他的实现方式,因为仔细看的话他们应该还有速度大小的监听,即对velocityX的值大小有限制,防止太慢,混淆和scroll的区别。
然后是对监听的设置:
movieGallery.setCallbackDuringFling(false); movieGallery.setUnselectedAlpha(1.0f); movieGallery .setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, final View view, int position, long id) { if (last_view != null) { if ((view instanceof FrameLayout) && (last_view instanceof FrameLayout)) { Log.i(TAG, "FrameLayout"); ((FrameLayout) last_view) .setForeground(mContext .getResources() .getDrawable( R.drawable.foreground_dark)); last_view = view; // ResourceUtils // .startBrightnessAnim(((ImageView) // ((FrameLayout) last_view) // .findViewById(R.id.photoview_image)) // .getDrawable()); ((FrameLayout) last_view) .setForeground(mContext .getResources() .getDrawable( R.drawable.foreground_light)); } else { Log.i(TAG, "View"); } } else { last_view = view; // ResourceUtils // .startBrightnessAnim(((ImageView) // ((FrameLayout) last_view) // .findViewById(R.id.photoview_image)) // .getDrawable()); ((FrameLayout) last_view) .setForeground(mContext .getResources() .getDrawable( R.drawable.foreground_light)); } toShowIndex = position; final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (showingIndex != toShowIndex) { showingIndex = toShowIndex; movie_title.setText(mMovies .get(showingIndex % mMovies.size()).moviename); movie_grade.setText(mMovies .get(showingIndex % mMovies.size()).generalmark); DataListMovies( mCinema.cinemaid, mMovies.get(showingIndex % mMovies.size()).movieid); } } }; Thread checkChange = new Thread() { @Override public void run() { int myIndex = toShowIndex; try { sleep(TIME_OUT_DISPLAY); if (myIndex == toShowIndex) { handler.sendEmptyMessage(0); } } catch (InterruptedException e) { e.printStackTrace(); } } }; checkChange.start(); } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } });
上面的实现是将选中的view的前景色变亮,未选中的变暗,同时关联大下面电影详情部分的变化,列出场次。
对于日期导航,使用HorizontalScrollView和RadioGroup来实现。列表显示电影安排使用viewpager。
同时在viewpager的监听和RadioGroup的监听做关联处理,同时动态滚动HorizontalScrollView。
在这些处理时遇到的问题及解决的办法在前面已经有了文章说明,可以从这里看到。
相关文章推荐
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- 关于Android类似qq和微信那种在桌面图标右上角更新数字的研究
- iOS 类似美团外卖app两个tableView联动效果实现
- ViewPage实现类似Gallery效果以及2个ViewPage联动
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- iOS 类似美团外卖 app 两个 tableView 联动效果实现
- 开发一款类似美团的团购App要多少钱
- [声明]关于春节回家期间不能更新Blog的说明
- 关于二级联动/三级联动下拉框的示例代码
- [导入]关于同时添加和更新一个表
- 关于IMS服务更新、创建
- JavaScript实现二级、多级(N级)联动下拉列表框更新版(续)- 四级联动的演示
- 关于二级联动/三级联动下拉框的示例代码
- 关于Peercast一些观点的更新
- 关于ruby的电子书下载(持续更新2006-12-4)
- 关于 智能杀毒伴侣 相关说明及技巧及版本更新 (不断更新)
- 关于J2ME开发的感想(2006-05-05更新)