AbsageView

	private class PerformClick extends WindowRunnnable implements Runnable {
		View mChild;
		int mClickMotionPosition;

		public void run() {
			LOGE("PerformClick:::run()");
			// The data has changed since we posted this action in the event queue,
			// bail out before bad things happen
			if (mDataChanged) return;
			
			LOGE("PerformClick:::mClickMotionPosition::::" + mClickMotionPosition);
			LOGE("PerformClick:::currentChildCount::::" + (getLastVisiblePosition() + 1));
			if(mClickMotionPosition == (getLastVisiblePosition() + 1)) return;

			if (mAdapter != null && mItemCount > 0 && mClickMotionPosition < mAdapter.getCount() && sameWindow()) {
				performItemClick(mChild, mClickMotionPosition, getAdapter().getItemId(mClickMotionPosition));
			}
		}
	}
private boolean performLongPress(final View child, final int longPressPosition, final long longPressId) {
        boolean handled = false;
        LOGE(":::::::::performLongPress:::::longPressPosition" + longPressPosition);
        if(longPressPosition == (getLastVisiblePosition() + 1)) return false;

        if (mOnItemLongClickListener != null) {
            handled = mOnItemLongClickListener.onItemLongClick(AbsPageView.this, child, longPressPosition, longPressId);
        }
        if (!handled) {
            mContextMenuInfo = createContextMenuInfo(child, longPressPosition, longPressId);
            handled = super.showContextMenuForChild(AbsPageView.this);
        }
        
        if (handled) {
            performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
        }
        return handled;
    }
private void layoutNavigatorView() {
		final View child = mNavigatorView;
		int index = indexOfChild(mNavigatorView);
		LOGE("::::::layoutNavigatorView:::::remove position:::" + index);
		if (index > 0)
			return;
		
		//AbsPageView.LayoutParams p = (AbsPageView.LayoutParams)child.getLayoutParams();
		ViewGroup.LayoutParams v = child.getLayoutParams();
		AbsPageView.LayoutParams p = (v == null) ? null : new AbsPageView.LayoutParams(v);
		if (p == null) {
			p = new AbsPageView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0);
		}
		p.viewType = 0;

		attachViewToParent(child, -1, p);
		
        mNavigatorView.requestLayout();
        boolean needToMeasure = child.isLayoutRequested();
        final int widthSize = MeasureSpec.getSize(mWidthMeasureSpec);
        final int heightSize = MeasureSpec.getSize(mHeightMeasureSpec);

		//Update indicator info
		//mNavigatorPageCurrent.setText(String.valueOf(mPageCurrent));
		//mNavigatorPageCount.setText(String.valueOf(mPageCount));
		String _pageCount = String.valueOf(mPageCount);
		String _pageCurrent = String.valueOf(mPageCurrent);
		mNavigatorInfo.setText(String.format(getResources().getString(R.string.page_info), _pageCurrent,_pageCount));
		//mNavigatorInfo.setText("sssss");
		if(mPageCount == 1){
			mNavigatorPrevView.setImageResource(R.drawable.pre_disable);
			mNavigatorNextView.setImageResource(R.drawable.next_disable);
		}else{
		    if(mPageCurrent == 1){
		        mNavigatorPrevView.setImageResource(R.drawable.pre_disable);
		    }else{
		        mNavigatorPrevView.setImageResource(R.drawable.pre_act);
		    }
		    
		    if(mPageCurrent == mPageCount){
		        mNavigatorNextView.setImageResource(R.drawable.next_disable);
		    }else{
		        mNavigatorNextView.setImageResource(R.drawable.next_act);
		    }			
		}
		/*
		if(mTurnNextPageMode == TURN_NEXT_PAGE_MODE_LTR || mTurnNextPageMode == TURN_NEXT_PAGE_MODE_RTL) {
			mNavigatorPrevView.setImageResource(R.drawable.pageview_left);
			mNavigatorNextView.setImageResource(R.drawable.pageview_right);
		}
		else {
			mNavigatorPrevView.setImageResource(R.drawable.pageview_up);
			mNavigatorNextView.setImageResource(R.drawable.pageview_down);
		}
		*/
		//mNavigatorPrevView.setVisibility((mPageCurrent <= 1) ? View.INVISIBLE : View.VISIBLE);
		//mNavigatorNextView.setVisibility((mPageCurrent >= mPageCount) ? View.INVISIBLE : View.VISIBLE);
		
		LOGE(":::layoutNavigatorView:::needToMeasure::" +needToMeasure );
		if (needToMeasure) {
			int childHeightSpec = ViewGroup.getChildMeasureSpec(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 0, p.height);
			int childWidthSpec = ViewGroup.getChildMeasureSpec(MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY), 0, p.width);
			child.measure(childWidthSpec, childHeightSpec);
		} else {
			cleanupLayoutState(child);
		}

		int w = widthSize;
		int h = mNavigatorHeight;
		final int childLeft = 0;
		final int childTop = heightSize - mNavigatorHeight;

		if (needToMeasure) {
			final int childRight = childLeft + w;
			final int childBottom = childTop + h;
			child.layout(childLeft, childTop, childRight, childBottom);
		} else {
			child.offsetLeftAndRight(childLeft - child.getLeft());
			child.offsetTopAndBottom(childTop - child.getTop());
		}
	}

public void onClick(View v) {
		LOGE(":::::::::onClick:::::::::");
		// button onclick to turn page
		int viewId = v.getId();
		switch(viewId){
		case R.id.prevPage:
			LOGE(":::::::::onClick::::::::prev");
			fillGap(false);
			break;
		case R.id.nextPage:
			LOGE(":::::::::onClick::::::::next");
			fillGap(true);
			break;
		}		
	}

protected void onLayout(boolean changed, int l, int t, int r, int b) {
		LOGE("onLayout:::changed("+changed+"), l("+l+"), t("+t+"), r("+r+"), b("+b+")");
		super.onLayout(changed, l, t, r, b);
		mInLayout = true;
		layoutChildren();
		if(mNavigatorDisplay){
			layoutNavigatorView();
		}
		mInLayout = false;
	}

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		LOGE("onMeasure:::");
		if (mSelector == null) {
			useDefaultSelector();
		}
		final Rect listPadding = mListPadding;
		listPadding.left = mSelectionLeftPadding + mPaddingLeft;
		listPadding.top = mSelectionTopPadding + mPaddingTop;
		listPadding.right = mSelectionRightPadding + mPaddingRight;
		listPadding.bottom = mSelectionBottomPadding + mPaddingBottom;

		final int widthSize = MeasureSpec.getSize(widthMeasureSpec);
		final int heightSize = MeasureSpec.getSize(heightMeasureSpec);
		final int count = mItemCount;
		if (count > 0) {
			//It should show indicator, so computer it's height
			//AbsPageView.LayoutParams p = (AbsPageView.LayoutParams)mNavigatorView.getLayoutParams();
			ViewGroup.LayoutParams v = mNavigatorView.getLayoutParams();
			AbsPageView.LayoutParams p = (v == null) ? null : new AbsPageView.LayoutParams(v);
			if (p == null) {
				p = new AbsPageView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0);
				mNavigatorView.setLayoutParams(p);
			}
			p.viewType = 0;
			int childHeightSpec = getChildMeasureSpec(MeasureSpec.makeMeasureSpec(heightSize, MeasureSpec.UNSPECIFIED), 0, p.height);
			int childWidthSpec = getChildMeasureSpec(MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.UNSPECIFIED), 0, p.width);
			mNavigatorView.measure(childWidthSpec, childHeightSpec);
			
			mNavigatorHeight = mNavigatorView.getMeasuredHeight();
		}
		else {
			mNavigatorHeight = 0;
		}
		LOGE("onMeasure:::mNavigatorHeight="+mNavigatorHeight);

	}

public int getExtendHeight()
	{
		if(mNavigatorDisplay){
			return mNavigatorHeight;
		}else{
			return 0;
			//return mScrollBarSize;
		}		
		/*
		if(mTurnNextPageMode == TURN_NEXT_PAGE_MODE_TTB || mTurnNextPageMode == TURN_NEXT_PAGE_MODE_BTT) {
			return 0;
		}
		else {
			return mScrollBarSize;
		}
		*/
	}

private void initNavigatorView(Context context){
		LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		mNavigatorView = inflater.inflate(R.layout.pageview_navigator, null);
		//mNavigatorPageCurrent = (TextView)mNavigatorView.findViewById(R.id.pageCurrent);
		//mNavigatorPageCount = (TextView)mNavigatorView.findViewById(R.id.pageCount);
		//mNavigatorInfo = (TextView)mNavigatorView.findViewById(R.id.pageInfo);
		mNavigatorPrevView = (ImageView)mNavigatorView.findViewById(R.id.prevPage);
		mNavigatorNextView = (ImageView)mNavigatorView.findViewById(R.id.nextPage);
		mNavigatorInfo = (TextView)mNavigatorView.findViewById(R.id.pageSplitor);
		//splitor.setText("/");
		
		// register listener
		mNavigatorPrevView.setOnClickListener(this);
		mNavigatorNextView.setOnClickListener(this);		
	}



资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 电流互感模块主要用于测量交流电路中的电流,并将其转换为与原电流成一定比例的低电压信号,便于远距离监测与控制。它常用于电力系统电流检测,尤其适合需要安全隔离的场景。本说明书重点介绍了电流互感模块和电压互感器模块的技术参数、使用方法及注意事项。 电流互感模块采用ZMCT103B/C型号电流互感器,具有体积小、精度高、一致性好的特点,对电力测量和保护的准确性和可靠性至关重要。其在高精度电力设备中应用,需具备高稳定性和重复性,隔离耐压达3000V,可承受高工作电压,保障高压环境下正常运行。 电流互感模块技术参数包括:额定输入电流0~10A(100Ω),输出电流5mA,精确度0.2%,输出信号为交流电压,变化0.2级,线性范围1000:1,相位差≤20分(100Ω负载),工作温度范围-40°C至+70°C。5A交流电流互感模块可测量5A以内交流电流,有对应模拟量输出。使用时,需将被测信号导线穿过互感器圆孔,输出信号接口为S和G(G为信号地),输出为交流电压信号,满足测量监控需求。单相交流电流互感带OP模块除板载精密微型电流互感器外,还集成高精度运放电路,能精确采样和适当补偿信号,适合测量5A以内交流电流,输出模拟量可调节。理想状态下,输入电压VCC为3-35V,调节电位器可改变放大倍数,但输出电压不超过1/2VCC,输出信号电压最大值也不超1/2VCC。 电压互感器模块型号为ZMPT101B,适用于电压和功率精确测量。其板载精密微型电压互感器和高精度运放电路,能精确采样并适当补偿信号。使用时,左侧接线柱可接入250V以内交流电压,右侧VCC工作电压为DC3-35V,通过电位器可调节放大比例,最大不超过1/2VCC。 使用互感模块时,需注意工作电压和环境温度,这两者会影响互感器性能。电流互感模块和
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值