android.view.View#postInvalidate ( )源码实例Demo

下面列出了android.view.View#postInvalidate ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Override
    protected void translateView(View view, boolean dir, float offset) {
        Log.d("wxy-motion", String.format("translateView setTag %s", offset));
        setViewOffset(view, offset);
        view.setPivotX(0.f);
        if (dir) {
            Log.d("wxy-motion", String.format("translateView setPivotY %s", 0));
            view.setPivotY(0.f);
        } else {
            view.setPivotY(view.getMeasuredHeight());
            Log.d("wxy-motion", String.format("translateView setPivotY %s", view.getMeasuredHeight()));
        }
        view.setScaleY(Math.min(getMaxScaleFactor(), (1.f + Math.abs(offset) / view.getWidth())));
        view.postInvalidate();

//        view.setTranslationY(offset);
    }
 
@Override
    protected void translateView(View view, boolean dir, float offset) {
        Log.d("wxy-motion", String.format("translateView setTag %s", offset));
        setViewOffset(view, offset);
        view.setPivotY(0.f);
        if (dir) {
            Log.d("wxy-motion", String.format("setPivotX setTag %s", 0));
            view.setPivotX(0.f);
        } else {
            Log.d("wxy-motion", String.format("setPivotX setTag %s", view.getMeasuredWidth()));
            view.setPivotX(view.getMeasuredWidth());
        }
        view.setScaleX(Math.min(getMaxScaleFactor(), (1.f + Math.abs(offset) / view.getWidth())));
        view.postInvalidate();
//        view.setTranslationX(offset);
    }
 
源代码3 项目: android-anuto   文件: Renderer.java
public void invalidate() {
    View view = mViewRef.get();

    if (view != null) {
        view.postInvalidate();
    }
}
 
源代码4 项目: android-chromium   文件: ApiCompatibilityUtils.java
/**
 * @see android.view.View#postInvalidateOnAnimation()
 */
public static void postInvalidateOnAnimation(View view) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        view.postInvalidateOnAnimation();
    } else {
        view.postInvalidate();
    }
}
 
源代码5 项目: android-chromium   文件: ApiCompatibilityUtils.java
/**
 * @see android.view.View#postInvalidateOnAnimation()
 */
public static void postInvalidateOnAnimation(View view) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        view.postInvalidateOnAnimation();
    } else {
        view.postInvalidate();
    }
}
 
源代码6 项目: a   文件: MyReadBookActivity.java
@Override
public boolean onTouch(View v, MotionEvent event) {

    if(v.getId()==R.id.cursor_left || v.getId()==R.id.cursor_right  ){
        int ea = event.getAction();
        //final int screenWidth = dm.widthPixels;
        //final int screenHeight = dm.heightPixels;
        switch(ea){
            case MotionEvent.ACTION_DOWN:
                lastX = (int) event.getRawX();// 获取触摸事件触摸位置的原始X坐标
                lastY = (int) event.getRawY();

                Log.e("获取触摸事件触摸位置的原始X坐标",lastX +":"+lastY);

                readLongPress.setVisibility(View.INVISIBLE);

                break;
            case MotionEvent.ACTION_MOVE:
                int dx = (int) event.getRawX() - lastX;
                int dy = (int) event.getRawY() - lastY;
                int l = v.getLeft() + dx;
                int b = v.getBottom() + dy;
                int r = v.getRight() + dx;
                int t = v.getTop() + dy;

                v.layout(l, t, r, b);
                lastX = (int) event.getRawX();
                lastY = (int) event.getRawY();
                v.postInvalidate();

                //移动过程中要画线
                pageView.setmCurrentMode(PageView.Mode.SelectMoveForward);


                int hh = cursorLeft.getHeight();
                int ww = cursorLeft.getWidth();
                if(pageView.getFirstSelectTxtChar()!=null) {
                    //cursorLeft.setX(pageView.getFirstSelectTxtChar().TopLeftPosition.x - ww / 2);
                    //cursorLeft.setY(pageView.getFirstSelectTxtChar().TopLeftPosition.y - hh);
                    //cursorRight.setX(pageView.getFirstSelectTxtChar().BottomRightPosition.x - ww / 2);
                    //cursorRight.setY(pageView.getFirstSelectTxtChar().BottomRightPosition.y);
                }

                if(v.getId()==R.id.cursor_left) {

                    pageView.setFirstSelectTxtChar(pageView.getCurrentTxtChar(lastX + ww / 2, lastY + hh));
                }else{
                    pageView.setLastSelectTxtChar(pageView.getCurrentTxtChar(lastX - ww / 2, lastY - hh));

                }

                //Log.e("sss",lastX +":"+lastY);

                //Log.e("sss",pageView.getmCurrentMode().toString());
                pageView.invalidate();

                break;
            case MotionEvent.ACTION_UP:

                showAction(v);
                //v.layout(l, t, r, b);



                break;
            default:
                break;
        };
    }else{
        //触摸其他部位清空选择。
        //pageView.clearSelect();
    }



    return true;

}
 
源代码7 项目: MyBookshelf   文件: ReadBookActivity.java
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View v, MotionEvent event) {

    if (v.getId() == R.id.cursor_left || v.getId() == R.id.cursor_right) {
        int ea = event.getAction();
        //final int screenWidth = dm.widthPixels;
        //final int screenHeight = dm.heightPixels;
        switch (ea) {
            case MotionEvent.ACTION_DOWN:
                lastX = (int) event.getRawX();// 获取触摸事件触摸位置的原始X坐标
                lastY = (int) event.getRawY();

                readLongPress.setVisibility(View.INVISIBLE);

                break;
            case MotionEvent.ACTION_MOVE:
                int dx = (int) event.getRawX() - lastX;
                int dy = (int) event.getRawY() - lastY;
                int l = v.getLeft() + dx;
                int b = v.getBottom() + dy;
                int r = v.getRight() + dx;
                int t = v.getTop() + dy;

                v.layout(l, t, r, b);
                lastX = (int) event.getRawX();
                lastY = (int) event.getRawY();
                v.postInvalidate();

                //移动过程中要画线
                pageView.setSelectMode(PageView.SelectMode.SelectMoveForward);

                int hh = cursorLeft.getHeight();
                int ww = cursorLeft.getWidth();

                if (v.getId() == R.id.cursor_left) {
                    pageView.setFirstSelectTxtChar(pageView.getCurrentTxtChar(lastX + ww, lastY - hh));
                } else {
                    pageView.setLastSelectTxtChar(pageView.getCurrentTxtChar(lastX - ww, lastY - hh));
                }

                pageView.invalidate();

                break;
            case MotionEvent.ACTION_UP:
                showAction(v);
                //v.layout(l, t, r, b);
                break;
            default:
                break;
        }
    }
    return true;
}
 
源代码8 项目: letv   文件: ViewCompatJB.java
public static void postInvalidateOnAnimation(View view, int left, int top, int right, int bottom) {
    view.postInvalidate(left, top, right, bottom);
}
 
源代码9 项目: Autoinstall   文件: ViewUtils.java
/**
 * 把postInvalidate换成这个方法
 * @param aView view
 */
public static void postInvalidate(View aView) {
    if (aView != null) {
        aView.postInvalidate();
    }
}
 
源代码10 项目: MiBandDecompiled   文件: am.java
public static void a(View view, int i, int j, int k, int l)
{
    view.postInvalidate(i, j, k, l);
}
 
源代码11 项目: CodenameOne   文件: ViewCompatJB.java
public static void postInvalidateOnAnimation(View view, int left, int top,
        int right, int bottom) {
    view.postInvalidate(left, top, right, bottom);
}
 
源代码12 项目: adt-leanback-support   文件: ViewCompatJB.java
public static void postInvalidateOnAnimation(View view, int left, int top,
        int right, int bottom) {
    view.postInvalidate(left, top, right, bottom);
}
 
源代码13 项目: V.FlyoutTest   文件: ViewCompatJB.java
public static void postInvalidateOnAnimation(View view, int left, int top,
        int right, int bottom) {
    view.postInvalidate(left, top, right, bottom);
}
 
源代码14 项目: guideshow   文件: ViewCompatJB.java
public static void postInvalidateOnAnimation(View view, int left, int top,
        int right, int bottom) {
    view.postInvalidate(left, top, right, bottom);
}
 
源代码15 项目: SmartSwipe   文件: ViewCompat.java
/**
 * <p>Cause an invalidate to happen on the next animation time step, typically the
 * next display frame.</p>
 *
 * <p>This method can be invoked from outside of the UI thread
 * only when this View is attached to a window.</p>
 *
 * @param view View to invalidate
 */
public static void postInvalidateOnAnimation(View view) {
    if (Build.VERSION.SDK_INT >= 16) {
        view.postInvalidateOnAnimation();
    } else {
        view.postInvalidate();
    }
}
 
 方法所在类
 同类方法