// 监听滚动Y值变化,通过addView和removeView来实现悬停效果
 @Override
 public void onScroll(int scrollY) {
   // TODO Auto-generated method stub
   int mBuyLayout2ParentTop = Math.max(scrollY, mBuyLayout.getTop());
   mTopBuyLayout.layout(
       0,
       mBuyLayout2ParentTop,
       mTopBuyLayout.getWidth(),
       mBuyLayout2ParentTop + mTopBuyLayout.getHeight());
 }
 public Bitmap getBitmapFromView() {
   RelativeLayout v = (RelativeLayout) mInflater.inflate(R.layout.new_action_item, null);
   v.setLayoutParams(
       new LayoutParams(
           RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
   v.measure(
       MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
       MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
   v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
   Bitmap b =
       Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
   Canvas c = new Canvas(b);
   v.draw(c);
   return b;
 }
Пример #3
0
  @Override
  protected void onTimeChanged(WatchFaceTime oldTime, WatchFaceTime newTime) {
    if (layoutSet && (newTime.hasHourChanged(oldTime) || newTime.hasMinuteChanged(oldTime))) {
      wakeLock.acquire(50);
      final java.text.DateFormat timeFormat = DateFormat.getTimeFormat(BaseWatchFace.this);
      mTime.setText(timeFormat.format(System.currentTimeMillis()));
      mTimestamp.setText(readingAge());

      if (ageLevel() <= 0) {
        mSgv.setPaintFlags(mSgv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
      } else {
        mSgv.setPaintFlags(mSgv.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
      }

      missedReadingAlert();
      mRelativeLayout.measure(specW, specH);
      mRelativeLayout.layout(
          0, 0, mRelativeLayout.getMeasuredWidth(), mRelativeLayout.getMeasuredHeight());
    }
  }
Пример #4
0
        /**
         * 子View被拖拽 移动的时候回调的方法
         *
         * @param changedView View whose position changed
         * @param left New X coordinate of the left edge of the view
         * @param top New Y coordinate of the top edge of the view
         * @param dx Change in X position from the last call
         * @param dy Change in Y position from the last call
         */
        @Override
        public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) {
          if (changedView == vg_main) {
            mainLeft = left;
          } else {
            mainLeft = mainLeft + left;
          }
          if (mainLeft < 0) {
            mainLeft = 0;
          } else if (mainLeft > range) {
            mainLeft = range;
          }

          if (isShowShadow) {
            iv_shadow.layout(mainLeft, 0, mainLeft + width, height);
          }
          if (changedView == vg_left) {
            vg_left.layout(0, 0, width, height);
            vg_main.layout(mainLeft, 0, mainLeft + width, height);
          }

          dispatchDragEvent(mainLeft);
        }
Пример #5
0
 /**
  * 调用进行left和main 视图进行位置布局
  *
  * @param changed
  * @param left
  * @param top
  * @param right
  * @param bottom
  */
 @Override
 protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
   vg_left.layout(0, 0, width, height);
   vg_main.layout(mainLeft, 0, mainLeft + width, height);
 }