牛骨文教育服务平台(让学习变的简单)

1、ViewFlipper——多页面管理控件,实现子界面的自动切换

(1)为ViewFlipper加入View:A.静态导入(在Layout布局文件中直接添加View控件); B.动态导入(addView())
(2)设置进入动画:setInAnimation();
设置退出动画:setOutAnimation();
设置视图切换自动播放时间间隔:setFlipInterval();
开始播放:startFlipping();
(3)设置支持手势活动:

@Override
	public boolean onTouchEvent(MotionEvent event) {
		// TODO Auto-generated method stub
		switch (event.getAction()) {

                //手指落下
		case MotionEvent.ACTION_DOWN: {
			startX=event.getX();
			break;
		}
		
                //手指滑动
		case MotionEvent.ACTION_UP:
		{
			//向右滑动
			if(event.getX()-startX>50)
			{
				 flipper.setInAnimation(this, R.anim.left_in);
				 flipper.setOutAnimation(this, R.anim.left_out);
				 flipper.showNext();
				
			}
			//向左滑动
			if(startX-event.getX()>50)
			{
				 flipper.setInAnimation(this, R.anim.right_in);
				 flipper.setOutAnimation(this, R.anim.right_out);
				 flipper.showPrevious();
			}
			break;
		}
		}

                //手指离开
                case MotionEvent.ACTION_UP:
                {
                    break;
                }

		return super.onTouchEvent(event);

	}

2、ScrollView——内容很多,屏幕显示不完,通过滚动来显示完整的视图

(1)ScrollView种类:A. HorizontalScrollView:水平滚动视图;B.ScrollView:垂直滚动视图;
(2)属性:设置不显示滚动条:Android:scrollbars="none";
(3)代码设置隐藏滚动条:setHorizontalScrollBarEnabled(false);setVerticalScrollBarEnabled(false);
(4)监听器:setOnTouchListenter()

scroll.setOnTouchListener(new OnTouchListener() {

			@Override
			public boolean onTouch(View v, MotionEvent event) {
				// TODO Auto-generated method stub
				switch (event.getAction()) {
				case MotionEvent.ACTION_MOVE: {
					/**
					 * (1)getScrollY()————滚动条滑动的距离 
					 * (2)getMeasuredHeight()
					 * (3)getHeight()
					 */

					// 顶部状态
					if (scroll.getScrollY() <= 0) {
						Log.i("Main", "滑动到顶部");
					}

					// 底部状态
					// TextView的总高度<=一屏幕的高度+滚动条的滚动距离
					if (scroll.getChildAt(0).getMeasuredHeight() <= scroll.getHeight() + scroll.getScrollY()) {

						Log.i("Main", "滑动到底部");
						Log.i("Main",
								"scroll.getChildAt(0).getMeasuredHeight()="
										+ scroll.getChildAt(0)
												.getMeasuredHeight()
										+ "scroll,getHeight()="
										+ scroll.getHeight()
										+ "scroll.getScrollY()="
										+ scroll.getScrollY());

						tv.append(getResources().getString(R.string.content));  // 刷新、追加

					}
					break;
				}
				}

				return false;
			}
		});
	}

(5)scrollTo和scrollBy
scrollTo:以滚动视图起始位置开始计算;
scrollBy:相对前一次的位置,去滚动相应距离

3、Gallery——缩略图浏览器

http://blog.csdn.net/songshimvp1/article/details/50233727——实际案例

4、SeekBar——拖动条

(1)方法:setMax:设置最大数值;
(2)事件监听:OnSeekBarChangeListenter监听三个事件:
A. onProgressChanged();      //数值改变
B. onStartTrackingTouch();    //开始拖动
C. onStopTrackingTouch();    //停止拖动
(3)自定义SeekBar
看不到源码时,可以在G:AndroidWorkadt-bundle-windows-x86-20130917sdkplatformsandroid-18data esdrawable中查找!