首页 Android 左右滑动菜单

Android 左右滑动菜单

举报
开通vip

Android 左右滑动菜单Android 左右滑动菜单 可实现的左右拖动的菜单 code代码: 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045...

Android 左右滑动菜单
Android 左右滑动菜单 可实现的左右拖动的菜单 code代码: 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 /** * HorizontalScrollView和ViewPager联动效果 * 上面为HorizontalScrollView,下面为ViewPager */ public class MainActivity extends Activity implements OnCheckedChangeListener{   private RadioGroup mRadioGroup; private RadioButton mRadioButton1; private RadioButton mRadioButton2; private RadioButton mRadioButton3; private RadioButton mRadioButton4; private RadioButton mRadioButton5; private ImageView mImageView; private float mCurrentCheckedRadioLeft;//当前被选中的RadioButton距离左侧的距离 private HorizontalScrollView mHorizontalScrollView;//上面的水平滚动控件 private ViewPager mViewPager; //下方的可横向拖动的控件 private ArrayList mViews;//用来存放下方滚动的layout(layout_1,layout_2,layout_3)   @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);   iniController(); iniListener(); iniVariable();   mRadioButton1.setChecked(true); mViewPager.setCurrentItem(1); mCurrentCheckedRadioLeft = getCurrentCheckedRadioLeft();   }   private void iniVariable() { // TODO Auto-generated method stub mViews = new ArrayList(); mViews.add(getLayoutInflater().inflate(R.layout.layout_0, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_1, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_2, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_3, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_4, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_5, null)); mViews.add(getLayoutInflater().inflate(R.layout.layout_0, null));   mViewPager.setAdapter(new MyPagerAdapter());//设置ViewPager的适配器 }   /** * RadioGroup点击CheckedChanged监听 */ @Override public void onCheckedChanged(RadioGroup group, int checkedId) {   AnimationSet _AnimationSet = new AnimationSet(true); TranslateAnimation _TranslateAnimation;   Log.i("zj", "checkedid="+checkedId); if (checkedId == R.id.btn1) { _TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft, getResources().getDimension(R.dimen.rdo1), 0f, 0f); _AnimationSet.addAnimation(_TranslateAnimation); _AnimationSet.setFillBefore(false); _AnimationSet.setFillAfter(true); _AnimationSet.setDuration(100);   mImageView.startAnimation(_AnimationSet);//开始上面蓝色横条图片的动画切换 mViewPager.setCurrentItem(1);//让下方ViewPager跟随上面的HorizontalScrollView切换 }else if (checkedId == R.id.btn2) { _TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft, getResources().getDimension(R.dimen.rdo2), 0f, 0f);   _AnimationSet.addAnimation(_TranslateAnimation); _AnimationSet.setFillBefore(false); _AnimationSet.setFillAfter(true); _AnimationSet.setDuration(100);   //mImageView.bringToFront(); mImageView.startAnimation(_AnimationSet);   mViewPager.setCurrentItem(2); }else if (checkedId == R.id.btn3) { _TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft, getResources().getDimension(R.dimen.rdo3), 0f, 0f);   _AnimationSet.addAnimation(_TranslateAnimation); _AnimationSet.setFillBefore(false); _AnimationSet.setFillAfter(true); _AnimationSet.setDuration(100);   //mImageView.bringToFront(); mImageView.startAnimation(_AnimationSet);   mViewPager.setCurrentItem(3); }else if (checkedId == R.id.btn4) { _TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft, getResources().getDimension(R.dimen.rdo4), 0f, 0f);   _AnimationSet.addAnimation(_TranslateAnimation); _AnimationSet.setFillBefore(false); _AnimationSet.setFillAfter(true); _AnimationSet.setDuration(100);   //mImageView.bringToFront(); mImageView.startAnimation(_AnimationSet); mViewPager.setCurrentItem(4); }else if (checkedId == R.id.btn5) { _TranslateAnimation = new TranslateAnimation(mCurrentCheckedRadioLeft, getResources().getDimension(R.dimen.rdo5), 0f, 0f);   _AnimationSet.addAnimation(_TranslateAnimation); _AnimationSet.setFillBefore(false); _AnimationSet.setFillAfter(true); _AnimationSet.setDuration(100);   //mImageView.bringToFront(); mImageView.startAnimation(_AnimationSet);   mViewPager.setCurrentItem(5); }   mCurrentCheckedRadioLeft = getCurrentCheckedRadioLeft();//更新当前蓝色横条距离左边的距离   Log.i("zj", "getCurrentCheckedRadioLeft="+getCurrentCheckedRadioLeft()); Log.i("zj", "getDimension="+getResources().getDimension(R.dimen.rdo2));   mHorizontalScrollView.smoothScrollTo((int)mCurrentCheckedRadioLeft-(int)getResources().getDimension(R.dimen.rdo2), 0); }   /** * 获得当前被选中的RadioButton距离左侧的距离 */ private float getCurrentCheckedRadioLeft() { // TODO Auto-generated method stub if (mRadioButton1.isChecked()) { return getResources().getDimension(R.dimen.rdo1); }else if (mRadioButton2.isChecked()) { return getResources().getDimension(R.dimen.rdo2); }else if (mRadioButton3.isChecked()) { return getResources().getDimension(R.dimen.rdo3); }else if (mRadioButton4.isChecked()) { return getResources().getDimension(R.dimen.rdo4); }else if (mRadioButton5.isChecked()) { return getResources().getDimension(R.dimen.rdo5); } return 0f; }   private void iniListener() { // TODO Auto-generated method stub mRadioGroup.setOnCheckedChangeListener(this); mViewPager.setOnPageChangeListener(new MyPagerOnPageChangeListener()); }   private void iniController() { // TODO Auto-generated method stub mRadioGroup = (RadioGroup)findViewById(R.id.radioGroup); mRadioButton1 = (RadioButton)findViewById(R.id.btn1); mRadioButton2 = (RadioButton)findViewById(R.id.btn2); mRadioButton3 = (RadioButton)findViewById(R.id.btn3); mRadioButton4 = (RadioButton)findViewById(R.id.btn4); mRadioButton5 = (RadioButton)findViewById(R.id.btn5);   mImageView = (ImageView)findViewById(R.id.img1);   mHorizontalScrollView = (HorizontalScrollView)findViewById(R.id.horizontalScrollView);   mViewPager = (ViewPager)findViewById(R.id.pager); }   /** * ViewPager的适配器 */ private class MyPagerAdapter extends PagerAdapter{   @Override public void destroyItem(View v, int position, Object obj) { // TODO Auto-generated method stub ((ViewPager)v).removeView(mViews.get(position)); }   @Override public void finishUpdate(View arg0) { // TODO Auto-generated method stub }   @Override public int getCount() { // TODO Auto-generated method stub return mViews.size(); }   @Override public Object instantiateItem(View v, int position) { ((ViewPager)v).addView(mViews.get(position)); return mViews.get(position); }   @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0 == arg1; }   @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { // TODO Auto-generated method stub }   @Override public Parcelable saveState() { // TODO Auto-generated method stub return null; }   @Override public void startUpdate(View arg0) { // TODO Auto-generated method stub }   } /** * ViewPager的PageChangeListener(页面改变的监听器) */ private class MyPagerOnPageChangeListener implements OnPageChangeListener{   @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub   }   @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } /** * 滑动ViewPager的时候,让上方的HorizontalScrollView自动切换 */ @Override public void onPageSelected(int position) { // TODO Auto-generated method stub //Log.i("zj", "position="+position);   if (position == 0) { mViewPager.setCurrentItem(1); }else if (position == 1) { mRadioButton1.performClick(); }else if (position == 2) { mRadioButton2.performClick(); }else if (position == 3) { mRadioButton3.performClick(); }else if (position == 4) { mRadioButton4.performClick(); }else if (position == 5) { mRadioButton5.performClick(); }else if (position == 6) { mViewPager.setCurrentItem(5); } } }   } 布局main.xml 01 02 03 04 05 06 07 08 09 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 滑动菜单.zip (4.08 MB, 下载次数: 446) 0tu1.png (145.87 KB, 下载次数: 20)
本文档为【Android 左右滑动菜单】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_925133
暂无简介~
格式:doc
大小:222KB
软件:Word
页数:9
分类:互联网
上传时间:2013-03-31
浏览量:15