`

动态添加圆点

 
阅读更多
			//动态添加圆点
			View view2 = new View(this);
			view2.setBackgroundResource(R.drawable.point_nomarl);
			
			LayoutParams params = new LinearLayout.LayoutParams(10, 10);
			if (i!=0) {
				params.leftMargin = 10;
			}
			
			point_container.addView(view2, params);

 在ViewPage中动态切换选中点:

		mSelectPoint = findViewById(R.id.guide_selected_point);

		// 获取全局布局的监听
		mSelectPoint.getViewTreeObserver().addOnGlobalLayoutListener(
				new OnGlobalLayoutListener() {

					@Override
					public void onGlobalLayout() {
						mPointSpace = point_container.getChildAt(1).getLeft()
								- point_container.getChildAt(0).getLeft();

						Log.d(TAG, mPointSpace +"");
						
						mSelectPoint.getViewTreeObserver()
								.removeGlobalOnLayoutListener(this);
					}
				});

 

	@Override
	public void onPageScrolled(int position, float positionOffset,
			int positionOffsetPixels) {

		// 滚动时
		// @positionOffset :
		// @positionOffsetPixels: 滚动的像素

		// 1. 计算需要移动距离
		// 通过两个点间的距离计算 和 positionOffset,移动的距离
		int left = (int) (mPointSpace * positionOffset + 0.5f);

		// 2. 改变选中点的marginleft
		RelativeLayout.LayoutParams params = (android.widget.RelativeLayout.LayoutParams) mSelectPoint
				.getLayoutParams();
		params.leftMargin = left + mPointSpace * position;

		mSelectPoint.setLayoutParams(params);

	}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics