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

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

源代码1 项目: letv   文件: HListView.java
private boolean handleHorizontalFocusWithinListItem(int direction) {
    if (direction == 33 || direction == 130) {
        int numChildren = getChildCount();
        if (this.mItemsCanFocus && numChildren > 0 && this.mSelectedPosition != -1) {
            View selectedView = getSelectedView();
            if (selectedView != null && selectedView.hasFocus() && (selectedView instanceof ViewGroup)) {
                View currentFocus = selectedView.findFocus();
                View nextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) selectedView, currentFocus, direction);
                if (nextFocus != null) {
                    currentFocus.getFocusedRect(this.mTempRect);
                    offsetDescendantRectToMyCoords(currentFocus, this.mTempRect);
                    offsetRectIntoDescendantCoords(nextFocus, this.mTempRect);
                    if (nextFocus.requestFocus(direction, this.mTempRect)) {
                        return true;
                    }
                }
                View globalNextFocus = FocusFinder.getInstance().findNextFocus((ViewGroup) getRootView(), currentFocus, direction);
                if (globalNextFocus != null) {
                    return isViewAncestorOf(globalNextFocus, this);
                }
            }
        }
        return false;
    }
    throw new IllegalArgumentException("direction must be one of {View.FOCUS_UP, View.FOCUS_DOWN}");
}
 
源代码2 项目: letv   文件: AbsHListView.java
public void getFocusedRect(Rect r) {
    View view = getSelectedView();
    if (view == null || view.getParent() != this) {
        super.getFocusedRect(r);
        return;
    }
    view.getFocusedRect(r);
    offsetDescendantRectToMyCoords(view, r);
}
 
源代码3 项目: recent-images   文件: TwoWayAbsListView.java
@Override
public void getFocusedRect(Rect r) {
	View view = getSelectedView();
	if (view != null && view.getParent() == this) {
		// the focused rectangle of the selected view offset into the
		// coordinate space of this view.
		view.getFocusedRect(r);
		offsetDescendantRectToMyCoords(view, r);
	} else {
		// otherwise, just the norm
		super.getFocusedRect(r);
	}
}
 
源代码4 项目: SimplifyReader   文件: PLAAbsListView.java
@Override
public void getFocusedRect(Rect r) {
    View view = getSelectedView();
    if (view != null && view.getParent() == this) {
        // the focused rectangle of the selected view offset into the
        // coordinate space of this view.
        view.getFocusedRect(r);
        offsetDescendantRectToMyCoords(view, r);
    } else {
        // otherwise, just the norm
        super.getFocusedRect(r);
    }
}
 
源代码5 项目: Lay-s   文件: PLAAbsListView.java
@Override
public void getFocusedRect(Rect r) {
    View view = getSelectedView();
    if (view != null && view.getParent() == this) {
        // the focused rectangle of the selected view offset into the
        // coordinate space of this view.
        view.getFocusedRect(r);
        offsetDescendantRectToMyCoords(view, r);
    } else {
        // otherwise, just the norm
        super.getFocusedRect(r);
    }
}
 
public void getFocusedRect(Rect paramRect) {
	View localView = getSelectedView();
	if (localView != null) {
		localView.getFocusedRect(paramRect);
		offsetDescendantRectToMyCoords(localView, paramRect);
		return;
	}
	super.getFocusedRect(paramRect);
}
 
源代码7 项目: Klyph   文件: HListView.java
/**
 * To avoid horizontal focus searches changing the selected item, we manually focus search within the selected item (as
 * applicable), and prevent focus from jumping to something within another item.
 * 
 * @param direction
 *           one of {View.FOCUS_LEFT, View.FOCUS_RIGHT}
 * @return Whether this consumes the key event.
 */
private boolean handleHorizontalFocusWithinListItem( int direction ) {
	// TODO: implement this
	if ( direction != View.FOCUS_LEFT && direction != View.FOCUS_RIGHT ) {
		throw new IllegalArgumentException( "direction must be one of"
				+ " {View.FOCUS_LEFT, View.FOCUS_RIGHT}" );
	}

	final int numChildren = getChildCount();
	if ( mItemsCanFocus && numChildren > 0 && mSelectedPosition != INVALID_POSITION ) {
		final View selectedView = getSelectedView();
		if ( selectedView != null && selectedView.hasFocus() &&
				selectedView instanceof ViewGroup ) {

			final View currentFocus = selectedView.findFocus();
			final View nextFocus = FocusFinder.getInstance().findNextFocus(
					(ViewGroup) selectedView, currentFocus, direction );
			if ( nextFocus != null ) {
				// do the math to get interesting rect in next focus' coordinates
				currentFocus.getFocusedRect( mTempRect );
				offsetDescendantRectToMyCoords( currentFocus, mTempRect );
				offsetRectIntoDescendantCoords( nextFocus, mTempRect );
				if ( nextFocus.requestFocus( direction, mTempRect ) ) {
					return true;
				}
			}
			// we are blocking the key from being handled (by returning true)
			// if the global result is going to be some other view within this
			// list. this is to acheive the overall goal of having
			// horizontal d-pad navigation remain in the current item.
			final View globalNextFocus = FocusFinder.getInstance().findNextFocus(
					(ViewGroup) getRootView(), currentFocus, direction );
			if ( globalNextFocus != null ) {
				return isViewAncestorOf( globalNextFocus, this );
			}
		}
	}
	return false;
}
 
源代码8 项目: Klyph   文件: AbsHListView.java
@Override
public void getFocusedRect( Rect r ) {
	View view = getSelectedView();
	if ( view != null && view.getParent() == this ) {
		// the focused rectangle of the selected view offset into the
		// coordinate space of this view.
		view.getFocusedRect( r );
		offsetDescendantRectToMyCoords( view, r );
	} else {
		// otherwise, just the norm
		super.getFocusedRect( r );
	}
}
 
源代码9 项目: EverMemo   文件: PLA_AbsListView.java
@Override
public void getFocusedRect(Rect r) {
	View view = getSelectedView();
	if (view != null && view.getParent() == this) {
		// the focused rectangle of the selected view offset into the
		// coordinate space of this view.
		view.getFocusedRect(r);
		offsetDescendantRectToMyCoords(view, r);
	} else {
		// otherwise, just the norm
		super.getFocusedRect(r);
	}
}
 
源代码10 项目: android_9.0.0_r45   文件: ListView.java
/**
 * To avoid horizontal focus searches changing the selected item, we
 * manually focus search within the selected item (as applicable), and
 * prevent focus from jumping to something within another item.
 * @param direction one of {View.FOCUS_LEFT, View.FOCUS_RIGHT}
 * @return Whether this consumes the key event.
 */
private boolean handleHorizontalFocusWithinListItem(int direction) {
    if (direction != View.FOCUS_LEFT && direction != View.FOCUS_RIGHT)  {
        throw new IllegalArgumentException("direction must be one of"
                + " {View.FOCUS_LEFT, View.FOCUS_RIGHT}");
    }

    final int numChildren = getChildCount();
    if (mItemsCanFocus && numChildren > 0 && mSelectedPosition != INVALID_POSITION) {
        final View selectedView = getSelectedView();
        if (selectedView != null && selectedView.hasFocus() &&
                selectedView instanceof ViewGroup) {

            final View currentFocus = selectedView.findFocus();
            final View nextFocus = FocusFinder.getInstance().findNextFocus(
                    (ViewGroup) selectedView, currentFocus, direction);
            if (nextFocus != null) {
                // do the math to get interesting rect in next focus' coordinates
                Rect focusedRect = mTempRect;
                if (currentFocus != null) {
                    currentFocus.getFocusedRect(focusedRect);
                    offsetDescendantRectToMyCoords(currentFocus, focusedRect);
                    offsetRectIntoDescendantCoords(nextFocus, focusedRect);
                } else {
                    focusedRect = null;
                }
                if (nextFocus.requestFocus(direction, focusedRect)) {
                    return true;
                }
            }
            // we are blocking the key from being handled (by returning true)
            // if the global result is going to be some other view within this
            // list.  this is to acheive the overall goal of having
            // horizontal d-pad navigation remain in the current item.
            final View globalNextFocus = FocusFinder.getInstance().findNextFocus(
                    (ViewGroup) getRootView(), currentFocus, direction);
            if (globalNextFocus != null) {
                return isViewAncestorOf(globalNextFocus, this);
            }
        }
    }
    return false;
}
 
源代码11 项目: Android-Application-ZJB   文件: ViewLayoutUtil.java
public static boolean isMotionFocusOnView(View view, MotionEvent event) {
    Rect focusBound = new Rect();
    view.getFocusedRect(focusBound);
    return focusBound.contains((int) event.getX(), (int) event.getY());
}
 
 方法所在类
 同类方法